///|
/// Selects one deterministic Roman notation grammar.
pub(all) enum RomanMode {
ModernCanonical
AdditiveHistorical
ClockFace
ParenthesizedThousands
} derive(Eq, Debug)
///|
/// Selects the letter case emitted by configured formatters.
pub(all) enum LetterCase {
Uppercase
Lowercase
} derive(Eq, Debug)
///|
/// Configures normalization and grammar selection for report parsing.
pub(all) struct ParseConfig {
mode : RomanMode
accept_lowercase : Bool
accept_unicode : Bool
trim_outer_whitespace : Bool
} derive(Eq, Debug)
///|
/// Configures grammar and case selection for report formatting.
pub(all) struct FormatConfig {
mode : RomanMode
letter_case : LetterCase
} derive(Eq, Debug)
///|
/// Configures candidate retention and limits for document scanning.
pub(all) struct ScanConfig {
parse_config : ParseConfig
retain_rejected : Bool
include_single_symbol : Bool
max_candidate_length : Int
} derive(Eq, Debug)
///|
/// Reports an invalid reusable processing configuration.
pub(all) enum ConfigError {
InvalidCandidateLength(Int)
} derive(Eq, Debug)