container/store.go
3c82fad4
 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)
 }