Documentation
¶
Overview ¶
this the double linked list from https://pkg.go.dev/container/list the only change is, that it uses generics for the value
Index ¶
- Constants
- func GetSupportedTypes() []bimg.ImageType
- func SupportsType(t bimg.ImageType) bool
- type Cache
- type Cacher
- type Element
- type EvictionStrategy
- type FileSystem
- type Handler
- type Item
- type LastAccessEviction
- type Layer
- type LayerStats
- type List
- func (l *List[T]) Back() *Element[T]
- func (l *List[T]) Front() *Element[T]
- func (l *List[T]) Init() *List[T]
- func (l *List[T]) InsertAfter(v T, mark *Element[T]) *Element[T]
- func (l *List[T]) InsertBefore(v T, mark *Element[T]) *Element[T]
- func (l *List[T]) Len() int
- func (l *List[T]) MoveAfter(e, mark *Element[T])
- func (l *List[T]) MoveBefore(e, mark *Element[T])
- func (l *List[T]) MoveToBack(e *Element[T])
- func (l *List[T]) MoveToFront(e *Element[T])
- func (l *List[T]) PushBack(v T) *Element[T]
- func (l *List[T]) PushBackList(other *List[T])
- func (l *List[T]) PushFront(v T) *Element[T]
- func (l *List[T]) PushFrontList(other *List[T])
- func (l *List[T]) Remove(e *Element[T]) any
- type MaxCacheSizeEviction
- type MaxItemsEviction
- type Memory
- type NestedFileSystem
- type Storer
Constants ¶
const ( KB = 1024 MB = KB * 1024 GB = MB * 1024 )
Variables ¶
This section is empty.
Functions ¶
func GetSupportedTypes ¶
func SupportsType ¶
Types ¶
type Element ¶
type Element[T any] struct { // The value stored with this element. Value T // contains filtered or unexported fields }
Element is an element of a linked list.
type EvictionStrategy ¶
type EvictionStrategy interface {
// contains filtered or unexported methods
}
type FileSystem ¶
type FileSystem struct {
// contains filtered or unexported fields
}
func NewFileSystem ¶
func NewFileSystem(path string) (*FileSystem, error)
func (*FileSystem) Delete ¶
func (fs *FileSystem) Delete(name string) error
func (*FileSystem) Exists ¶
func (fs *FileSystem) Exists(name string) bool
type Handler ¶
type Handler func(string, http.ResponseWriter)
type LastAccessEviction ¶
type LastAccessEviction struct {
// contains filtered or unexported fields
}
func NewLastAccessEviction ¶
func NewLastAccessEviction(duration time.Duration) *LastAccessEviction
type Layer ¶
type Layer struct {
// contains filtered or unexported fields
}
func NewLayer ¶
func NewLayer(cache Cacher, evictions ...EvictionStrategy) *Layer
func (*Layer) BackgroundEviction ¶
func (*Layer) Stats ¶
func (l *Layer) Stats() *LayerStats
type LayerStats ¶
type List ¶
type List[T any] struct { // contains filtered or unexported fields }
List represents a doubly linked list. The zero value for List is an empty list ready to use.
func (*List[T]) InsertAfter ¶
InsertAfter inserts a new element e with value v immediately after mark and returns e. If mark is not an element of l, the list is not modified. The mark must not be nil.
func (*List[T]) InsertBefore ¶
InsertBefore inserts a new element e with value v immediately before mark and returns e. If mark is not an element of l, the list is not modified. The mark must not be nil.
func (*List[T]) MoveAfter ¶
MoveAfter moves element e to its new position after mark. If e or mark is not an element of l, or e == mark, the list is not modified. The element and mark must not be nil.
func (*List[T]) MoveBefore ¶
MoveBefore moves element e to its new position before mark. If e or mark is not an element of l, or e == mark, the list is not modified. The element and mark must not be nil.
func (*List[T]) MoveToBack ¶
MoveToBack moves element e to the back of list l. If e is not an element of l, the list is not modified. The element must not be nil.
func (*List[T]) MoveToFront ¶
MoveToFront moves element e to the front of list l. If e is not an element of l, the list is not modified. The element must not be nil.
func (*List[T]) PushBack ¶
PushBack inserts a new element e with value v at the back of list l and returns e.
func (*List[T]) PushBackList ¶
PushBackList inserts a copy of another list at the back of list l. The lists l and other may be the same. They must not be nil.
func (*List[T]) PushFront ¶
PushFront inserts a new element e with value v at the front of list l and returns e.
func (*List[T]) PushFrontList ¶
PushFrontList inserts a copy of another list at the front of list l. The lists l and other may be the same. They must not be nil.
type MaxCacheSizeEviction ¶
type MaxCacheSizeEviction struct {
// contains filtered or unexported fields
}
func NewMaxCacheSizeEviction ¶
func NewMaxCacheSizeEviction(size int64) *MaxCacheSizeEviction
type MaxItemsEviction ¶
type MaxItemsEviction struct {
// contains filtered or unexported fields
}
func NewMaxItemsEviction ¶
func NewMaxItemsEviction(number int) *MaxItemsEviction
type NestedFileSystem ¶
type NestedFileSystem struct {
// contains filtered or unexported fields
}
func NewNestedFilesystem ¶
func NewNestedFilesystem(path string, numSubdirectories uint) (*NestedFileSystem, error)
func (*NestedFileSystem) Delete ¶
func (nfs *NestedFileSystem) Delete(name string) error
func (*NestedFileSystem) Exists ¶
func (nfs *NestedFileSystem) Exists(name string) bool