use crate::prelude::*;
#[newtype(
primitive = "Text",
item(prim = "Text"),
ty(validator(path = "validator::intl::iso::Iso639_1"))
)]
pub struct Code {}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_code() {
let test_cases = [
("en", true),
("de", true),
("D", false),
("DE", false),
("en-us", false),
("EN-US", false),
("EN-USSR", false),
];
for (key, expected) in test_cases {
let code = Code(key.into());
assert!(
validate(&code).is_ok() == expected,
"testing: '{}' - expected: {}, got: {}",
key,
expected,
validate(&code).is_ok()
);
}
}
}