1use crate::prelude::*;
2
3#[newtype(
9 primitive = "Text",
10 item(prim = "Text"),
11 ty(validator(path = "validator::intl::iso::Iso639_1"))
12)]
13pub struct Code {}
14
15#[cfg(test)]
20mod tests {
21 use super::*;
22
23 #[test]
24 fn test_code() {
25 let test_cases = [
26 ("en", true),
28 ("de", true),
29 ("D", false),
31 ("DE", false),
32 ("en-us", false),
33 ("EN-US", false),
34 ("EN-USSR", false),
35 ];
36
37 for (key, expected) in test_cases {
38 let code = Code(key.into());
39 assert!(
40 validate(&code).is_ok() == expected,
41 "testing: '{}' - expected: {}, got: {}",
42 key,
43 expected,
44 validate(&code).is_ok()
45 );
46 }
47 }
48}