rok-sqlc 0.7.0

Generate SQLx Rust database modules from SQL schema files
Documentation
//! The data tables the string rules' helpers read ([`super::rule_snippets`]):
//! the email domains `normalize_email` knows, the card providers
//! `is_credit_card` knows and the IBAN formats `is_iban` knows, as
//! validator.js lists them. `shared/validation.rs` holds each once, after
//! the helper reading it.

/// The domains `normalize_email` knows.
pub const EMAIL_DOMAINS: &str = r#"
/// iCloud's domains, as validator.js's `normalizeEmail` lists them.
const ICLOUD: &[&str] = &["icloud.com", "me.com"];

/// Outlook.com's domains, as validator.js's `normalizeEmail` lists them.
const OUTLOOK: &[&str] = &[
    "hotmail.at",
    "hotmail.be",
    "hotmail.ca",
    "hotmail.cl",
    "hotmail.co.il",
    "hotmail.co.nz",
    "hotmail.co.th",
    "hotmail.co.uk",
    "hotmail.com",
    "hotmail.com.ar",
    "hotmail.com.au",
    "hotmail.com.br",
    "hotmail.com.gr",
    "hotmail.com.mx",
    "hotmail.com.pe",
    "hotmail.com.tr",
    "hotmail.com.vn",
    "hotmail.cz",
    "hotmail.de",
    "hotmail.dk",
    "hotmail.es",
    "hotmail.fr",
    "hotmail.hu",
    "hotmail.id",
    "hotmail.ie",
    "hotmail.in",
    "hotmail.it",
    "hotmail.jp",
    "hotmail.kr",
    "hotmail.lv",
    "hotmail.my",
    "hotmail.ph",
    "hotmail.pt",
    "hotmail.sa",
    "hotmail.sg",
    "hotmail.sk",
    "live.be",
    "live.co.uk",
    "live.com",
    "live.com.ar",
    "live.com.mx",
    "live.de",
    "live.es",
    "live.eu",
    "live.fr",
    "live.it",
    "live.nl",
    "msn.com",
    "outlook.at",
    "outlook.be",
    "outlook.cl",
    "outlook.co.il",
    "outlook.co.nz",
    "outlook.co.th",
    "outlook.com",
    "outlook.com.ar",
    "outlook.com.au",
    "outlook.com.br",
    "outlook.com.gr",
    "outlook.com.pe",
    "outlook.com.tr",
    "outlook.com.vn",
    "outlook.cz",
    "outlook.de",
    "outlook.dk",
    "outlook.es",
    "outlook.fr",
    "outlook.hu",
    "outlook.id",
    "outlook.ie",
    "outlook.in",
    "outlook.it",
    "outlook.jp",
    "outlook.kr",
    "outlook.lv",
    "outlook.my",
    "outlook.ph",
    "outlook.pt",
    "outlook.sa",
    "outlook.sg",
    "outlook.sk",
    "passport.com",
];

/// Yahoo's domains, as validator.js's `normalizeEmail` lists them.
const YAHOO: &[&str] = &[
    "rocketmail.com",
    "yahoo.ca",
    "yahoo.co.uk",
    "yahoo.com",
    "yahoo.de",
    "yahoo.fr",
    "yahoo.in",
    "yahoo.it",
    "ymail.com",
];

/// Yandex's domains, as validator.js's `normalizeEmail` lists them.
const YANDEX: &[&str] = &[
    "yandex.ru",
    "yandex.ua",
    "yandex.kz",
    "yandex.com",
    "yandex.by",
    "ya.ru",
];
"#;

/// The providers `is_credit_card` knows.
pub const CARD_PROVIDER_LIST: &str = r#"
/// The card providers validator.js's `isCreditCard` knows.
const CARD_PROVIDERS: &[&str] = &[
    "amex",
    "dinersclub",
    "discover",
    "jcb",
    "mastercard",
    "unionpay",
    "visa",
];
"#;

/// The formats `is_iban` knows.
pub const IBAN_FORMAT_LIST: &str = r#"
/// Each country's IBAN format after its code, as validator.js's `isIBAN`
/// checks it: counts of digits (`n`), uppercase letters (`a`) or either
/// (`c`).
const IBAN_FORMATS: &[(&str, &str)] = &[
    ("AD", "2n8n12c"),
    ("AE", "2n3n16n"),
    ("AL", "2n8n16c"),
    ("AT", "2n16n"),
    ("AZ", "2n4c20n"),
    ("BA", "2n16n"),
    ("BE", "2n12n"),
    ("BG", "2n4a6n8c"),
    ("BH", "2n4a14c"),
    ("BR", "2n23n1a1c"),
    ("BY", "2n4c20n"),
    ("CH", "2n5n12c"),
    ("CR", "2n18n"),
    ("CY", "2n8n16c"),
    ("CZ", "2n20n"),
    ("DE", "2n18n"),
    ("DK", "2n14n"),
    ("DO", "2n4a20n"),
    ("DZ", "24n"),
    ("EE", "2n16n"),
    ("EG", "2n25n"),
    ("ES", "2n20n"),
    ("FI", "2n14n"),
    ("FO", "2n14n"),
    ("FR", "2n10n11c2n"),
    ("GB", "2n4a14n"),
    ("GE", "2n2c16n"),
    ("GI", "2n4a15c"),
    ("GL", "2n14n"),
    ("GR", "2n7n16c"),
    ("GT", "2n4c20c"),
    ("HR", "2n17n"),
    ("HU", "2n24n"),
    ("IE", "2n4a14n"),
    ("IL", "2n19n"),
    ("IQ", "2n4a15n"),
    ("IR", "2n22n"),
    ("IS", "2n22n"),
    ("IT", "2n1a10n12c"),
    ("JO", "2n4a22n"),
    ("KW", "2n4a22c"),
    ("KZ", "2n3n13c"),
    ("LB", "2n4n20c"),
    ("LC", "2n4a24c"),
    ("LI", "2n5n12c"),
    ("LT", "2n16n"),
    ("LU", "2n3n13c"),
    ("LV", "2n4a13c"),
    ("MA", "26n"),
    ("MC", "2n10n11c2n"),
    ("MD", "2n20c"),
    ("ME", "2n18n"),
    ("MK", "2n3n10c2n"),
    ("MR", "2n23n"),
    ("MT", "2n4a5n18c"),
    ("MU", "2n4a19n3a"),
    ("MZ", "2n21n"),
    ("NL", "2n4a10n"),
    ("NO", "2n11n"),
    ("PK", "2n4c16n"),
    ("PL", "2n24n"),
    ("PS", "2n4a21c"),
    ("PT", "2n21n"),
    ("QA", "2n4a21c"),
    ("RO", "2n4a16c"),
    ("RS", "2n18n"),
    ("SA", "2n2n18c"),
    ("SC", "2n4a20n3a"),
    ("SE", "2n20n"),
    ("SI", "2n15n"),
    ("SK", "2n20n"),
    ("SM", "2n1a10n12c"),
    ("SV", "2n4c20n"),
    ("TL", "2n19n"),
    ("TN", "2n20n"),
    ("TR", "2n5n17c"),
    ("UA", "2n6n19c"),
    ("VA", "2n18n"),
    ("VG", "2n4a16n"),
    ("XK", "2n16n"),
];
"#;