// Copyright (c) HashiCorp, Inc. // SPDX-License-Identifier: MPL-2.0 package keysutil import lru "github.com/hashicorp/golang-lru" type TransitLRU struct { size int lru *lru.TwoQueueCache } func NewTransitLRU(size int) (*TransitLRU, error) { lru, err := lru.New2Q(size) return &TransitLRU{lru: lru, size: size}, err } func (c *TransitLRU) Delete(key interface{}) { c.lru.Remove(key) } func (c *TransitLRU) Load(key interface{}) (value interface{}, ok bool) { return c.lru.Get(key) } func (c *TransitLRU) Store(key, value interface{}) { c.lru.Add(key, value) } func (c *TransitLRU) Size() int { return c.size }