///|
/// Controls how a class of input characters is handled.
pub(all) enum CharacterPolicy {
Keep
Drop
Reject
} derive(Eq, Debug)
///|
/// Controls ASCII case conversion after character normalization.
pub(all) enum CasePolicy {
Preserve
Upper
Lower
} derive(Eq, Debug)
///|
/// Selects whole-input or token-aware matching.
pub(all) enum TokenPolicy {
WholeInput
BestTokenPairs
} derive(Eq, Debug)
///|
/// Configures deterministic name normalization.
pub(all) struct NormalizationConfig {
case_policy : CasePolicy
punctuation : CharacterPolicy
whitespace : CharacterPolicy
hyphen : CharacterPolicy
apostrophe : CharacterPolicy
digits : CharacterPolicy
fold_latin_diacritics : Bool
max_input_length : Int
} derive(Eq, Debug)
///|
/// Describes a non-fatal transformation applied during normalization.
pub(all) enum NormalizationNotice {
CharactersDropped(Int)
DiacriticsFolded(Int)
InputTruncated(Int)
} derive(Eq, Debug)
///|
/// Reports invalid configuration or unsupported input.
pub(all) enum NormalizationError {
InvalidMaximumLength(Int)
InputTooLong(Int, Int)
RejectedCharacter(Int, UInt16)
EmptyNormalizedInput
} derive(Eq, Debug)
///|
/// Contains normalized text, tokens, and transformation evidence.
pub(all) struct NormalizationResult {
original : String
normalized : String
tokens : Array[String]
notices : Array[NormalizationNotice]
truncated : Bool
} derive(Eq, Debug)