fork of go-git with some jj specific features
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at main 39 lines 1.2 kB view raw
1package cache 2 3import "github.com/go-git/go-git/v5/plumbing" 4 5const ( 6 Byte FileSize = 1 << (iota * 10) 7 KiByte 8 MiByte 9 GiByte 10) 11 12type FileSize int64 13 14const DefaultMaxSize FileSize = 96 * MiByte 15 16// Object is an interface to a object cache. 17type Object interface { 18 // Put puts the given object into the cache. Whether this object will 19 // actually be put into the cache or not is implementation specific. 20 Put(o plumbing.EncodedObject) 21 // Get gets an object from the cache given its hash. The second return value 22 // is true if the object was returned, and false otherwise. 23 Get(k plumbing.Hash) (plumbing.EncodedObject, bool) 24 // Clear clears every object from the cache. 25 Clear() 26} 27 28// Buffer is an interface to a buffer cache. 29type Buffer interface { 30 // Put puts a buffer into the cache. If the buffer is already in the cache, 31 // it will be marked as used. Otherwise, it will be inserted. Buffer might 32 // be evicted to make room for the new one. 33 Put(key int64, slice []byte) 34 // Get returns a buffer by its key. It marks the buffer as used. If the 35 // buffer is not in the cache, (nil, false) will be returned. 36 Get(key int64) ([]byte, bool) 37 // Clear clears every object from the cache. 38 Clear() 39}