40 lines
1.3 KiB
C#
40 lines
1.3 KiB
C#
using System;
|
|
|
|
namespace StellaOps.Provcache;
|
|
|
|
/// <summary>
|
|
/// Builder for constructing <see cref="DecisionDigest"/> from evaluation results.
|
|
/// Ensures deterministic digest computation for cache consistency.
|
|
/// </summary>
|
|
public sealed partial class DecisionDigestBuilder
|
|
{
|
|
private string? _veriKey;
|
|
private string? _verdictHash;
|
|
private string? _proofRoot;
|
|
private ReplaySeed? _replaySeed;
|
|
private DateTimeOffset? _createdAt;
|
|
private DateTimeOffset? _expiresAt;
|
|
private int? _trustScore;
|
|
private TrustScoreBreakdown? _trustScoreBreakdown;
|
|
private readonly ProvcacheOptions _options;
|
|
private readonly TimeProvider _timeProvider;
|
|
|
|
/// <summary>
|
|
/// Creates a new DecisionDigestBuilder with default options.
|
|
/// </summary>
|
|
public DecisionDigestBuilder() : this(new ProvcacheOptions(), TimeProvider.System)
|
|
{
|
|
}
|
|
|
|
/// <summary>
|
|
/// Creates a new DecisionDigestBuilder with the specified options.
|
|
/// </summary>
|
|
/// <param name="options">Provcache configuration options.</param>
|
|
/// <param name="timeProvider">Time provider for timestamps.</param>
|
|
public DecisionDigestBuilder(ProvcacheOptions options, TimeProvider? timeProvider = null)
|
|
{
|
|
_options = options ?? throw new ArgumentNullException(nameof(options));
|
|
_timeProvider = timeProvider ?? TimeProvider.System;
|
|
}
|
|
}
|