Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( //ErrConflict returned when value is already in use. ErrConflict = errors.New("number already allocated") //ErrInvalidRange returned invalid range, for eg# min > max ErrInvalidRange = errors.New("invalid range") //ErrOutOfRange returned when value is not in pool range. ErrOutOfRange = errors.New("out of range") //ErrRangeFull returned when no more free values in the pool. ErrRangeFull = errors.New("range full") //ErrInternal returned when no free item found, but a.free != 0. ErrInternal = errors.New("internal error") )
Functions ¶
This section is empty.
Types ¶
type MinMaxAllocator ¶
type MinMaxAllocator struct {
// contains filtered or unexported fields
}
MinMaxAllocator defines allocator struct.
func NewMinMaxAllocator ¶
func NewMinMaxAllocator(min, max int) (*MinMaxAllocator, error)
NewMinMaxAllocator return a new allocator or error based on provided min/max value.
func (*MinMaxAllocator) Allocate ¶
func (a *MinMaxAllocator) Allocate(i int) (bool, error)
Allocate allocates provided value in the allocator and mark it as used.
func (*MinMaxAllocator) AllocateNext ¶
func (a *MinMaxAllocator) AllocateNext() (int, bool, error)
AllocateNext allocates next value from the allocator.
func (*MinMaxAllocator) Free ¶
func (a *MinMaxAllocator) Free() int
Free returns the number of free values in the allocator.
func (*MinMaxAllocator) Has ¶
func (a *MinMaxAllocator) Has(i int) bool
Has check whether the provided value is used in the allocator
func (*MinMaxAllocator) Release ¶
func (a *MinMaxAllocator) Release(i int) error
Release free/delete provided value from the allocator.
func (*MinMaxAllocator) SetRange ¶
func (a *MinMaxAllocator) SetRange(min, max int) error
SetRange defines the range/pool with provided min and max values.
Click to show internal directories.
Click to hide internal directories.