Documentation
¶
Overview ¶
Package datastruct is an experimental package, that is a candidate to become a port if there is use-case to support it.
Index ¶
- type KeyValueStore
- type LinkedList
- func (ll *LinkedList[T]) Append(vs ...T)
- func (ll *LinkedList[T]) Iter() iter.Seq[T]
- func (ll *LinkedList[T]) Len() int
- func (ll *LinkedList[T]) Lookup(index int) (T, bool)
- func (ll *LinkedList[T]) Pop() (T, bool)
- func (ll *LinkedList[T]) Prepend(vs ...T)
- func (ll *LinkedList[T]) Shift() (T, bool)
- func (ll *LinkedList[T]) Slice() []T
- type List
- type Map
- type Mapper
- type OrderedSet
- func (s *OrderedSet[T]) Append(vs ...T)
- func (s *OrderedSet[T]) Delete(index int) bool
- func (set OrderedSet[T]) FromSlice(vs []T) OrderedSet[T]
- func (s OrderedSet[T]) Has(v T) bool
- func (s *OrderedSet[T]) Insert(index int, vs ...T) bool
- func (s OrderedSet[T]) Iter() iter.Seq[T]
- func (s OrderedSet[T]) Len() int
- func (s *OrderedSet[T]) Lookup(index int) (T, bool)
- func (s *OrderedSet[T]) Set(index int, v T) bool
- func (s OrderedSet[T]) Slice() []T
- type Sequence
- type Set
- type Sizer
- type Slicer
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type KeyValueStore ¶
type LinkedList ¶
type LinkedList[T any] struct { // contains filtered or unexported fields }
func (*LinkedList[T]) Append ¶
func (ll *LinkedList[T]) Append(vs ...T)
func (*LinkedList[T]) Iter ¶
func (ll *LinkedList[T]) Iter() iter.Seq[T]
func (*LinkedList[T]) Len ¶
func (ll *LinkedList[T]) Len() int
Len returns the length of elements in the list
func (*LinkedList[T]) Lookup ¶
func (ll *LinkedList[T]) Lookup(index int) (T, bool)
func (*LinkedList[T]) Pop ¶
func (ll *LinkedList[T]) Pop() (T, bool)
func (*LinkedList[T]) Prepend ¶
func (ll *LinkedList[T]) Prepend(vs ...T)
Prepend adds an element to the beginning of the list.
func (*LinkedList[T]) Shift ¶
func (ll *LinkedList[T]) Shift() (T, bool)
func (*LinkedList[T]) Slice ¶
func (ll *LinkedList[T]) Slice() []T
type Map ¶
type Map[K comparable, V any] map[K]V
type Mapper ¶
type Mapper[K comparable, V any] interface { // Map returns the contents as a map[K]V. Map() map[K]V }
type OrderedSet ¶
type OrderedSet[T comparable] struct { // contains filtered or unexported fields }
Example ¶
package main
import (
"go.llib.dev/frameless/port/datastruct"
)
func main() {
var set datastruct.OrderedSet[string]
set.Append("foo", "bar", "baz", "foo")
set.Slice() // []string{"foo", "bar", "baz"}
set.Len() // 3
}
Example (FromSlice) ¶
package main
import (
"go.llib.dev/frameless/port/datastruct"
)
func main() {
var vs = []string{"foo", "bar", "baz", "foo"}
var set = datastruct.OrderedSet[string]{}.FromSlice(vs)
set.Slice() // []string{"foo", "bar", "baz"}
set.Len() // 3
}
Example (Has) ¶
package main
import (
"go.llib.dev/frameless/port/datastruct"
)
func main() {
var set datastruct.OrderedSet[string]
set.Append("foo", "bar", "baz", "foo")
set.Has("foo") // true
set.Has("bar") // true
set.Has("oof") // false
}
Example (Iterate) ¶
package main
import (
"go.llib.dev/frameless/port/datastruct"
)
func main() {
var set datastruct.OrderedSet[string]
set.Append("foo", "bar", "baz", "foo")
for v := range set.Iter() {
_ = v // "foo" -> "bar" -> "baz"
}
}
func (*OrderedSet[T]) Append ¶
func (s *OrderedSet[T]) Append(vs ...T)
func (*OrderedSet[T]) Delete ¶
func (s *OrderedSet[T]) Delete(index int) bool
func (OrderedSet[T]) FromSlice ¶
func (set OrderedSet[T]) FromSlice(vs []T) OrderedSet[T]
func (OrderedSet[T]) Has ¶
func (s OrderedSet[T]) Has(v T) bool
func (*OrderedSet[T]) Insert ¶
func (s *OrderedSet[T]) Insert(index int, vs ...T) bool
func (OrderedSet[T]) Iter ¶
func (s OrderedSet[T]) Iter() iter.Seq[T]
func (OrderedSet[T]) Len ¶
func (s OrderedSet[T]) Len() int
func (*OrderedSet[T]) Lookup ¶
func (s *OrderedSet[T]) Lookup(index int) (T, bool)
func (*OrderedSet[T]) Set ¶
func (s *OrderedSet[T]) Set(index int, v T) bool
func (OrderedSet[T]) Slice ¶
func (s OrderedSet[T]) Slice() []T
type Set ¶
type Set[T comparable] map[T]struct{}
Example ¶
package main
import (
"go.llib.dev/frameless/port/datastruct"
)
func main() {
var set datastruct.Set[string]
set.Append("foo", "bar", "baz")
for v := range set.Iter() {
_ = v // "foo" / "bar" / "baz"
}
}
Click to show internal directories.
Click to hide internal directories.