using System.Collections.Concurrent; using System.Diagnostics.CodeAnalysis; using Remora.Discord.API.Abstractions.Objects; using Remora.Rest.Core; namespace Catalogger.Backend.Cache.InMemoryCache; public class GuildCache { private readonly ConcurrentDictionary _guilds = new(); public int Size => _guilds.Count; public void Set(IGuild guild) => _guilds[guild.ID] = guild; public bool Remove(Snowflake id, [NotNullWhen(true)] out IGuild? guild) => _guilds.Remove(id, out guild); public bool TryGet(Snowflake id, [NotNullWhen(true)] out IGuild? guild) => _guilds.TryGetValue(id, out guild); }