using VoidCat.Services.Abstractions; namespace VoidCat.Services; /// public abstract class BasicCacheStore : IBasicStore { protected readonly ICache Cache; protected BasicCacheStore(ICache cache) { Cache = cache; } /// public virtual ValueTask Get(Guid id) { return Cache.Get(MapKey(id)); } /// public virtual async ValueTask> Get(Guid[] ids) { var ret = new List(); foreach (var id in ids) { var r = await Cache.Get(MapKey(id)); if (r != null) { ret.Add(r); } } return ret; } /// public virtual ValueTask Add(Guid id, TStore obj) { return Cache.Set(MapKey(id), obj); } /// public virtual ValueTask Delete(Guid id) { return Cache.Delete(MapKey(id)); } /// /// Map an id to a key in the KV store /// /// /// protected abstract string MapKey(Guid id); }