///|
/// Supplies a caller-owned document identity and scanning policy.
pub(all) struct RomanDocument {
id : String
text : String
config : ScanConfig
} derive(Eq, Debug)
///|
/// Retains either a complete scan or a document-local configuration failure.
pub(all) enum RomanDocumentOutcome {
CorpusScanned(RomanScanReport)
CorpusScanFailed(ConfigError)
} derive(Eq, Debug)
///|
/// Retains one corpus result in input order.
pub(all) struct RomanDocumentResult {
id : String
text : String
outcome : RomanDocumentOutcome
} derive(Eq, Debug)
///|
/// Aggregates only evidence produced by completed document scans.
pub(all) struct RomanCorpusStatistics {
total_documents : Int
scanned_documents : Int
configuration_failures : Int
candidates_examined : Int
matches : Int
rejections : Int
} derive(Eq, Debug)
///|
/// Returns stable document results and corpus totals.
pub(all) struct RomanCorpusReport {
documents : Array[RomanDocumentResult]
statistics : RomanCorpusStatistics
} derive(Eq, Debug)
///|
/// Reports caller-owned document identity errors.
pub(all) enum CorpusValidationError {
EmptyDocumentId(Int)
DuplicateDocumentId(String)
} derive(Eq, Debug)