package cache
import "github.com/go-git/go-git/v5/plumbing/cache"
Index ¶
- type Buffer
- type BufferLRU
- func NewBufferLRU(maxSize FileSize) *BufferLRU
- func NewBufferLRUDefault() *BufferLRU
- func (c *BufferLRU) Clear()
- func (c *BufferLRU) Get(key int64) ([]byte, bool)
- func (c *BufferLRU) Put(key int64, slice []byte)
- type FileSize
- type Object
- type ObjectLRU
Types ¶
type Buffer ¶
type Buffer interface { // Put puts a buffer into the cache. If the buffer is already in the cache, // it will be marked as used. Otherwise, it will be inserted. Buffer might // be evicted to make room for the new one. Put(key int64, slice []byte) // Get returns a buffer by its key. It marks the buffer as used. If the // buffer is not in the cache, (nil, false) will be returned. Get(key int64) ([]byte, bool) // Clear clears every object from the cache. Clear() }
Buffer is an interface to a buffer cache.
type BufferLRU ¶
type BufferLRU struct { MaxSize FileSize // contains filtered or unexported fields }
BufferLRU implements an object cache with an LRU eviction policy and a maximum size (measured in object size).
func NewBufferLRU ¶
NewBufferLRU creates a new BufferLRU with the given maximum size. The maximum size will never be exceeded.
func NewBufferLRUDefault ¶
func NewBufferLRUDefault() *BufferLRU
NewBufferLRUDefault creates a new BufferLRU with the default cache size.
func (*BufferLRU) Clear ¶
func (c *BufferLRU) Clear()
Clear the content of this buffer cache.
func (*BufferLRU) Get ¶
Get returns a buffer by its key. It marks the buffer as used. If the buffer is not in the cache, (nil, false) will be returned.
func (*BufferLRU) Put ¶
Put puts a buffer into the cache. If the buffer is already in the cache, it will be marked as used. Otherwise, it will be inserted. A buffers might be evicted to make room for the new one.
type FileSize ¶
type FileSize int64
const DefaultMaxSize FileSize = 96 * MiByte
type Object ¶
type Object interface { // Put puts the given object into the cache. Whether this object will // actually be put into the cache or not is implementation specific. Put(o plumbing.EncodedObject) // Get gets an object from the cache given its hash. The second return value // is true if the object was returned, and false otherwise. Get(k plumbing.Hash) (plumbing.EncodedObject, bool) // Clear clears every object from the cache. Clear() }
Object is an interface to a object cache.
type ObjectLRU ¶
type ObjectLRU struct { MaxSize FileSize // contains filtered or unexported fields }
ObjectLRU implements an object cache with an LRU eviction policy and a maximum size (measured in object size).
func NewObjectLRU ¶
NewObjectLRU creates a new ObjectLRU with the given maximum size. The maximum size will never be exceeded.
func NewObjectLRUDefault ¶
func NewObjectLRUDefault() *ObjectLRU
NewObjectLRUDefault creates a new ObjectLRU with the default cache size.
func (*ObjectLRU) Clear ¶
func (c *ObjectLRU) Clear()
Clear the content of this object cache.
func (*ObjectLRU) Get ¶
Get returns an object by its hash. It marks the object as used. If the object is not in the cache, (nil, false) will be returned.
func (*ObjectLRU) Put ¶
func (c *ObjectLRU) Put(obj plumbing.EncodedObject)
Put puts an object into the cache. If the object is already in the cache, it will be marked as used. Otherwise, it will be inserted. A single object might be evicted to make room for the new object.
Source Files ¶
buffer_lru.go common.go object_lru.go
- Version
- v5.16.2 (latest)
- Published
- Jun 6, 2025
- Platform
- linux/amd64
- Imports
- 3 packages
- Last checked
- 2 weeks ago –
Tools for package owners.