using System.Collections.Immutable; namespace StellaOps.Scanner.EntryTrace; public sealed record EntryTraceResult( string ScanId, string ImageDigest, DateTimeOffset GeneratedAtUtc, EntryTraceGraph Graph, ImmutableArray Ndjson); public interface IEntryTraceResultStore { Task StoreAsync(EntryTraceResult result, CancellationToken cancellationToken); Task GetAsync(string scanId, CancellationToken cancellationToken); } internal sealed class NullEntryTraceResultStore : IEntryTraceResultStore { public Task StoreAsync(EntryTraceResult result, CancellationToken cancellationToken) { ArgumentNullException.ThrowIfNull(result); return Task.CompletedTask; } public Task GetAsync(string scanId, CancellationToken cancellationToken) { ArgumentException.ThrowIfNullOrWhiteSpace(scanId); return Task.FromResult(null); } }