using System.Runtime.CompilerServices; using static TightWiki.Caching.WikiCache; namespace TightWiki.Caching { /// /// Contains a verbatim cache key which also includes the calling function name. /// /// public class WikiCacheKeyFunction(string key) : IWikiCacheKey { public string Key { get; set; } = key; /// /// Builds a cache key which includes the calling function name. /// public static WikiCacheKeyFunction Build(Category category, object?[] segments, [CallerMemberName] string callingFunction = "") => new($"[{category}]:[{string.Join("]:[", segments)}]:[{callingFunction}]"); /// /// Builds a cache key which includes the calling function name. /// public static WikiCacheKeyFunction Build(Category category, [CallerMemberName] string callingFunction = "") => new($"[{category}]:[{callingFunction}]"); } }