orderedmap

package
v1.39.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 4, 2024 License: MIT Imports: 5 Imported by: 0

Documentation

Overview

Package orderedmap implements an ordered map, i.e. a map that also keeps track of the order in which keys were inserted.

All operations are constant-time.

Github repo: https://github.com/wk8/go-ordered-map TODO: create pull request on wk8 with YAML Marahaling and Unmarshaling

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type OrderedMap

type OrderedMap struct {
	// contains filtered or unexported fields
}

func New

func New() *OrderedMap

New creates a new OrderedMap.

func (*OrderedMap) Delete

func (om *OrderedMap) Delete(key interface{}) (interface{}, bool)

Delete removes the key-value pair, and returns what `Get` would have returned on that key prior to the call to `Delete`.

func (*OrderedMap) Filter

func (om *OrderedMap) Filter(f func(iKey interface{}, iValue interface{}) bool) []*Pair

func (*OrderedMap) Get

func (om *OrderedMap) Get(key interface{}) (interface{}, bool)

Get looks for the given key, and returns the value associated with it, or nil if not found. The boolean it returns says whether the key is present in the map.

func (*OrderedMap) GetPair

func (om *OrderedMap) GetPair(key interface{}) *Pair

GetPair looks for the given key, and returns the pair associated with it, or nil if not found. The Pair struct can then be used to iterate over the ordered map from that point, either forward or backward.

func (*OrderedMap) Len

func (om *OrderedMap) Len() int

Len returns the length of the ordered map.

func (*OrderedMap) Map

func (om *OrderedMap) Map(f func(iKey interface{}, iValue interface{}))

func (*OrderedMap) MarshalJSON

func (m *OrderedMap) MarshalJSON() ([]byte, error)

func (*OrderedMap) MarshalYAML

func (m *OrderedMap) MarshalYAML() (interface{}, error)

func (*OrderedMap) Newest

func (om *OrderedMap) Newest() *Pair

Newest returns a pointer to the newest pair. It's meant to be used to iterate on the ordered map's pairs from the newest to the oldest, e.g.: for pair := orderedMap.Oldest(); pair != nil; pair = pair.Next() { fmt.Printf("%v => %v\n", pair.Key, pair.Value) }

func (*OrderedMap) Oldest

func (om *OrderedMap) Oldest() *Pair

Oldest returns a pointer to the oldest pair. It's meant to be used to iterate on the ordered map's pairs from the oldest to the newest, e.g.: for pair := orderedMap.Oldest(); pair != nil; pair = pair.Next() { fmt.Printf("%v => %v\n", pair.Key, pair.Value) }

func (*OrderedMap) Set

func (om *OrderedMap) Set(key interface{}, value interface{}) (interface{}, bool)

Set sets the key-value pair, and returns what `Get` would have returned on that key prior to the call to `Set`.

func (*OrderedMap) UnmarshalYAML

func (m *OrderedMap) UnmarshalYAML(value *yaml.Node) error

type Pair

type Pair struct {
	Key   interface{}
	Value interface{}
	// contains filtered or unexported fields
}

func (*Pair) Next

func (p *Pair) Next() *Pair

Next returns a pointer to the next pair.

func (*Pair) Prev

func (p *Pair) Prev() *Pair

Previous returns a pointer to the previous pair.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL