3c82fad441
- Generalize in an interface. - Stop abusing of List for everything. Signed-off-by: David Calavera <david.calavera@gmail.com>
28 lines
966 B
Go
28 lines
966 B
Go
package container
|
|
|
|
// StoreFilter defines a function to filter
|
|
// container in the store.
|
|
type StoreFilter func(*Container) bool
|
|
|
|
// StoreReducer defines a function to
|
|
// manipulate containers in the store
|
|
type StoreReducer func(*Container)
|
|
|
|
// Store defines an interface that
|
|
// any container store must implement.
|
|
type Store interface {
|
|
// Add appends a new container to the store.
|
|
Add(string, *Container)
|
|
// Get returns a container from the store by the identifier it was stored with.
|
|
Get(string) *Container
|
|
// Delete removes a container from the store by the identifier it was stored with.
|
|
Delete(string)
|
|
// List returns a list of containers from the store.
|
|
List() []*Container
|
|
// Size returns the number of containers in the store.
|
|
Size() int
|
|
// First returns the first container found in the store by a given filter.
|
|
First(StoreFilter) *Container
|
|
// ApplyAll calls the reducer function with every container in the store.
|
|
ApplyAll(StoreReducer)
|
|
}
|