icydb_base/types/intl/
mod.rs

1use crate::prelude::*;
2
3///
4/// CountryCode
5/// two-letter country codes defined in ISO 3166-1
6///
7/// https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
8///
9
10#[newtype(
11    primitive = "Text",
12    item(prim = "Text"),
13    ty(
14        sanitizer(path = "sanitizer::intl::iso::Iso3166_1A2"),
15        validator(path = "validator::intl::iso::Iso3166_1A2"),
16    )
17)]
18pub struct CountryCode {}
19
20///
21/// LanguageCode
22/// two letter language code
23///
24/// https://en.wikipedia.org/wiki/ISO_639-1
25///
26
27#[newtype(
28    primitive = "Text",
29    item(prim = "Text"),
30    ty(
31        sanitizer(path = "sanitizer::intl::iso::Iso639_1"),
32        validator(path = "validator::intl::iso::Iso639_1"),
33    )
34)]
35pub struct LanguageCode {}
36
37///
38/// PhoneNumber
39/// standardised international phone number
40///
41/// https://en.wikipedia.org/wiki/E.164
42///
43
44#[newtype(
45    primitive = "Text",
46    item(prim = "Text"),
47    ty(
48        sanitizer(path = "sanitizer::intl::phone::E164PhoneNumber"),
49        validator(path = "validator::intl::phone::E164PhoneNumber"),
50    )
51)]
52pub struct PhoneNumber {}