aboutsummaryrefslogtreecommitdiff
path: root/internal/lru/cache.go
diff options
context:
space:
mode:
authorGravatar Runxi Yu2026-03-06 04:43:03 +0800
committerGravatar Runxi Yu2026-03-06 04:43:03 +0800
commitfec8b64975f952e2fa5fa8478b09dced87f0fa7b (patch)
tree358cea12d4f20d6821202f040aeb9be58eb878a7 /internal/lru/cache.go
parentformat/commitgraph/bloom: Add commit-graph bloom filters (diff)
signatureNo signature
internal/lru: Split
Diffstat (limited to 'internal/lru/cache.go')
-rw-r--r--internal/lru/cache.go16
1 files changed, 16 insertions, 0 deletions
diff --git a/internal/lru/cache.go b/internal/lru/cache.go
new file mode 100644
index 00000000..1aa96c52
--- /dev/null
+++ b/internal/lru/cache.go
@@ -0,0 +1,16 @@
+package lru
+
+import "container/list"
+
+// Cache is a non-concurrent weighted LRU cache.
+//
+// Methods on Cache are not safe for concurrent use.
+type Cache[K comparable, V any] struct {
+ maxWeight int64
+ weightFn WeightFunc[K, V]
+ onEvict OnEvictFunc[K, V]
+
+ weight int64
+ items map[K]*list.Element
+ lru list.List
+}