use crate::types::Lang;
#[derive(Clone, PartialEq, Eq, Hash, Debug)]
pub enum AlignerKey {
Lang(Lang),
Any,
}
#[derive(Copy, Clone, PartialEq, Eq, Debug, Default)]
pub enum AlignmentFallback {
#[default]
SkipChunk,
Error,
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn aligner_key_eq_distinguishes_lang_from_any() {
assert_ne!(AlignerKey::Lang(Lang::En), AlignerKey::Any);
assert_eq!(AlignerKey::Lang(Lang::En), AlignerKey::Lang(Lang::En));
assert_ne!(AlignerKey::Lang(Lang::En), AlignerKey::Lang(Lang::Zh));
}
#[test]
fn aligner_key_hashes_consistently() {
use std::collections::HashSet;
let mut s = HashSet::new();
s.insert(AlignerKey::Lang(Lang::En));
s.insert(AlignerKey::Any);
s.insert(AlignerKey::Lang(Lang::En)); assert_eq!(s.len(), 2);
}
#[test]
fn alignment_fallback_default_is_skip_chunk() {
assert_eq!(AlignmentFallback::default(), AlignmentFallback::SkipChunk);
}
}