32 lines
865 B
C#
32 lines
865 B
C#
using System.Collections.Generic;
|
|
|
|
namespace StellaOps.Provcache;
|
|
|
|
/// <summary>
|
|
/// Result of a batch cache lookup.
|
|
/// </summary>
|
|
public sealed record ProvcacheBatchLookupResult
|
|
{
|
|
/// <summary>
|
|
/// Entries found in cache, keyed by VeriKey.
|
|
/// </summary>
|
|
public required IReadOnlyDictionary<string, ProvcacheEntry> Hits { get; init; }
|
|
|
|
/// <summary>
|
|
/// VeriKeys that were not found in cache.
|
|
/// </summary>
|
|
public required IReadOnlyList<string> Misses { get; init; }
|
|
|
|
/// <summary>
|
|
/// Time taken for the lookup in milliseconds.
|
|
/// </summary>
|
|
public double ElapsedMs { get; init; }
|
|
|
|
/// <summary>
|
|
/// Cache hit rate for this batch (0.0 - 1.0).
|
|
/// </summary>
|
|
public double HitRate => Hits.Count == 0 && Misses.Count == 0
|
|
? 0.0
|
|
: (double)Hits.Count / (Hits.Count + Misses.Count);
|
|
}
|