namespace AIStudio.Tools.Services;
///
/// What an indexing run of a data source works for: its embedding settings and the documents it selects.
///
///
/// A run counts as outdated when the next run would throw its work away, or when it works with
/// documents which no longer belong to the data source, or misses the ones which now do. Both parts
/// are descriptions which exist anyway, so no list of fields has to be kept in step with them by
/// hand: the embedding signature decides when a stored index is thrown away, and the selection
/// signature is what the selection of a folder tells about itself.
///
/// The embedding signature of the run, cf. DataSourceEmbeddingService.BuildEmbeddingSignature.
/// Which documents the run works with, cf. DataSourceEmbeddingService.BuildSelectionSignature.
internal sealed record DataSourceRunSignature(string EmbeddingSignature, string SelectionSignature)
{
///
/// No run would start: the data source or its embedding provider is gone, or that provider may not read it.
///
public static readonly DataSourceRunSignature NONE = new(string.Empty, string.Empty);
}