Files
temporal/common/collection/interface.go
Stephan Behnke 5b49acfaf9 go fix (#9337)
## What changed?

Integrate Go 1.26's new `go fix` into workflow.

NOTE that the changes caused our linter to fire; a [separate
commit](1b23f787ae)
addresses those.

## Why?

Ensure Go code is standardized/modernized.

## How did you test it?
- [ ] built
- [ ] run locally and tested manually
- [x] covered by existing tests
- [ ] added new unit test(s)
- [ ] added new functional test(s)
2026-02-18 09:12:19 -08:00

79 lines
2.6 KiB
Go

package collection
type (
// Queue is the interface for queue
Queue[T any] interface {
// Peek returns the first item of the queue
Peek() T
// Add push an item to the queue
Add(item T)
// Remove pop an item from the queue
Remove() T
// IsEmpty indicate if the queue is empty
IsEmpty() bool
// Len return the size of the queue
Len() int
}
// HashFunc represents a hash function for string
HashFunc func(any) uint32
// ActionFunc take a key and value, do calculation and return err
ActionFunc func(key any, value any) error
// PredicateFunc take a key and value, do calculation and return boolean
PredicateFunc func(key any, value any) bool
// ConcurrentTxMap is a generic interface for any implementation of a dictionary
// or a key value lookup table that is thread safe, and providing functionality
// to modify key / value pair inside within a transaction
ConcurrentTxMap interface {
// Get returns the value for the given key
Get(key any) (any, bool)
// Contains returns true if the key exist and false otherwise
Contains(key any) bool
// Put records the mapping from given key to value
Put(key any, value any)
// PutIfNotExist records the key value mapping only
// if the mapping does not already exist
PutIfNotExist(key any, value any) bool
// Remove deletes the key from the map
Remove(key any)
// GetAndDo returns the value corresponding to the key, and apply fn to key value before return value
// return (value, value exist or not, error when evaluation fn)
GetAndDo(key any, fn ActionFunc) (any, bool, error)
// PutOrDo put the key value in the map, if key does not exists, otherwise, call fn with existing key and value
// return (value, fn evaluated or not, error when evaluation fn)
PutOrDo(key any, value any, fn ActionFunc) (any, bool, error)
// RemoveIf deletes the given key from the map if fn return true
// return whether the key is removed or not
RemoveIf(key any, fn PredicateFunc) bool
// Iter returns an iterator to the map
Iter() MapIterator
// Len returns the number of items in the map
Len() int
}
// MapIterator represents the interface for map iterators
MapIterator interface {
// Close closes the iterator
// and releases any allocated resources
Close()
// Entries returns a channel of MapEntry
// objects that can be used in a range loop
Entries() <-chan *MapEntry
}
// MapEntry represents a key-value entry within the map
MapEntry struct {
// Key represents the key
Key any
// Value represents the value
Value any
}
)
const (
// UUIDStringLength is the length of an UUID represented as a hex string
UUIDStringLength = 36 // xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
)