store

package
v0.23.0-rc7 Latest Latest
Warning

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

Go to latest
Published: Oct 18, 2024 License: MIT Imports: 2 Imported by: 77

Documentation

Index

Constants

View Source
const ShrinkThreshold = 200 // the number is arbitrary chosen

@todo remove after https://github.com/golang/go/issues/20135

Variables

This section is empty.

Functions

This section is empty.

Types

type Store

type Store[T any] struct {
	// contains filtered or unexported fields
}

Store defines a concurrent safe in memory key-value data store.

func New

func New[T any](data map[string]T) *Store[T]

New creates a new Store[T] instance with a shallow copy of the provided data (if any).

func (*Store[T]) Get

func (s *Store[T]) Get(key string) T

Get returns a single element value from the store.

If key is not set, the zero T value is returned.

func (*Store[T]) GetAll added in v0.12.0

func (s *Store[T]) GetAll() map[string]T

GetAll returns a shallow copy of the current store data.

func (*Store[T]) GetOk added in v0.23.0

func (s *Store[T]) GetOk(key string) (T, bool)

GetOk is similar to Get but returns also a boolean indicating whether the key exists or not.

func (*Store[T]) GetOrSet added in v0.23.0

func (s *Store[T]) GetOrSet(key string, setFunc func() T) T

GetOrSet retrieves a single existing value for the provided key or stores a new one if it doesn't exist.

func (*Store[T]) Has

func (s *Store[T]) Has(key string) bool

Has checks if element with the specified key exist or not.

func (*Store[T]) Length added in v0.12.0

func (s *Store[T]) Length() int

Length returns the current number of elements in the store.

func (*Store[T]) MarshalJSON added in v0.23.0

func (s *Store[T]) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler and export the current store data into valid JSON.

func (*Store[T]) Remove

func (s *Store[T]) Remove(key string)

Remove removes a single entry from the store.

Remove does nothing if key doesn't exist in the store.

func (*Store[T]) RemoveAll added in v0.2.6

func (s *Store[T]) RemoveAll()

RemoveAll removes all the existing store entries.

func (*Store[T]) Reset added in v0.12.0

func (s *Store[T]) Reset(newData map[string]T)

Reset clears the store and replaces the store data with a shallow copy of the provided newData.

func (*Store[T]) Set

func (s *Store[T]) Set(key string, value T)

Set sets (or overwrite if already exist) a new value for key.

func (*Store[T]) SetIfLessThanLimit

func (s *Store[T]) SetIfLessThanLimit(key string, value T, maxAllowedElements int) bool

SetIfLessThanLimit sets (or overwrite if already exist) a new value for key.

This method is similar to Set() but **it will skip adding new elements** to the store if the store length has reached the specified limit. false is returned if maxAllowedElements limit is reached.

func (*Store[T]) UnmarshalJSON added in v0.23.0

func (s *Store[T]) UnmarshalJSON(data []byte) error

UnmarshalJSON implements json.Unmarshaler and imports the provided JSON data into the store.

The store entries that match with the ones from the data will be overwritten with the new value.

func (*Store[T]) Values added in v0.23.0

func (s *Store[T]) Values() []T

Values returns a slice with all of the current store values.

Jump to

Keyboard shortcuts

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