recon-cli 0.81.3

Versatile network reconnaissance CLI: HTTP/TLS/DNS, multi-protocol probes, and a Rhai script engine
Documentation
//! ISO 13616 IBAN country code → expected length.

pub struct IbanCountry {
    pub code: &'static str,
    pub name: &'static str,
    pub length: usize,
}

pub static COUNTRIES: &[IbanCountry] = &[
    IbanCountry { code: "AD", name: "Andorra", length: 24 },
    IbanCountry { code: "AE", name: "United Arab Emirates", length: 23 },
    IbanCountry { code: "AL", name: "Albania", length: 28 },
    IbanCountry { code: "AT", name: "Austria", length: 20 },
    IbanCountry { code: "AZ", name: "Azerbaijan", length: 28 },
    IbanCountry { code: "BA", name: "Bosnia and Herzegovina", length: 20 },
    IbanCountry { code: "BE", name: "Belgium", length: 16 },
    IbanCountry { code: "BG", name: "Bulgaria", length: 22 },
    IbanCountry { code: "BH", name: "Bahrain", length: 22 },
    IbanCountry { code: "BR", name: "Brazil", length: 29 },
    IbanCountry { code: "BY", name: "Belarus", length: 28 },
    IbanCountry { code: "CH", name: "Switzerland", length: 21 },
    IbanCountry { code: "CR", name: "Costa Rica", length: 22 },
    IbanCountry { code: "CY", name: "Cyprus", length: 28 },
    IbanCountry { code: "CZ", name: "Czech Republic", length: 24 },
    IbanCountry { code: "DE", name: "Germany", length: 22 },
    IbanCountry { code: "DK", name: "Denmark", length: 18 },
    IbanCountry { code: "DO", name: "Dominican Republic", length: 28 },
    IbanCountry { code: "EE", name: "Estonia", length: 20 },
    IbanCountry { code: "EG", name: "Egypt", length: 29 },
    IbanCountry { code: "ES", name: "Spain", length: 24 },
    IbanCountry { code: "FI", name: "Finland", length: 18 },
    IbanCountry { code: "FO", name: "Faroe Islands", length: 18 },
    IbanCountry { code: "FR", name: "France", length: 27 },
    IbanCountry { code: "GB", name: "United Kingdom", length: 22 },
    IbanCountry { code: "GE", name: "Georgia", length: 22 },
    IbanCountry { code: "GI", name: "Gibraltar", length: 23 },
    IbanCountry { code: "GL", name: "Greenland", length: 18 },
    IbanCountry { code: "GR", name: "Greece", length: 27 },
    IbanCountry { code: "GT", name: "Guatemala", length: 28 },
    IbanCountry { code: "HR", name: "Croatia", length: 21 },
    IbanCountry { code: "HU", name: "Hungary", length: 28 },
    IbanCountry { code: "IE", name: "Ireland", length: 22 },
    IbanCountry { code: "IL", name: "Israel", length: 23 },
    IbanCountry { code: "IQ", name: "Iraq", length: 23 },
    IbanCountry { code: "IS", name: "Iceland", length: 26 },
    IbanCountry { code: "IT", name: "Italy", length: 27 },
    IbanCountry { code: "JO", name: "Jordan", length: 30 },
    IbanCountry { code: "KW", name: "Kuwait", length: 30 },
    IbanCountry { code: "KZ", name: "Kazakhstan", length: 20 },
    IbanCountry { code: "LB", name: "Lebanon", length: 28 },
    IbanCountry { code: "LC", name: "Saint Lucia", length: 32 },
    IbanCountry { code: "LI", name: "Liechtenstein", length: 21 },
    IbanCountry { code: "LT", name: "Lithuania", length: 20 },
    IbanCountry { code: "LU", name: "Luxembourg", length: 20 },
    IbanCountry { code: "LV", name: "Latvia", length: 21 },
    IbanCountry { code: "LY", name: "Libya", length: 25 },
    IbanCountry { code: "MC", name: "Monaco", length: 27 },
    IbanCountry { code: "MD", name: "Moldova", length: 24 },
    IbanCountry { code: "ME", name: "Montenegro", length: 22 },
    IbanCountry { code: "MK", name: "North Macedonia", length: 19 },
    IbanCountry { code: "MR", name: "Mauritania", length: 27 },
    IbanCountry { code: "MT", name: "Malta", length: 31 },
    IbanCountry { code: "MU", name: "Mauritius", length: 30 },
    IbanCountry { code: "NL", name: "Netherlands", length: 18 },
    IbanCountry { code: "NO", name: "Norway", length: 15 },
    IbanCountry { code: "PK", name: "Pakistan", length: 24 },
    IbanCountry { code: "PL", name: "Poland", length: 28 },
    IbanCountry { code: "PS", name: "Palestine", length: 29 },
    IbanCountry { code: "PT", name: "Portugal", length: 25 },
    IbanCountry { code: "QA", name: "Qatar", length: 29 },
    IbanCountry { code: "RO", name: "Romania", length: 24 },
    IbanCountry { code: "RS", name: "Serbia", length: 22 },
    IbanCountry { code: "SA", name: "Saudi Arabia", length: 24 },
    IbanCountry { code: "SC", name: "Seychelles", length: 31 },
    IbanCountry { code: "SE", name: "Sweden", length: 24 },
    IbanCountry { code: "SI", name: "Slovenia", length: 19 },
    IbanCountry { code: "SK", name: "Slovakia", length: 24 },
    IbanCountry { code: "SM", name: "San Marino", length: 27 },
    IbanCountry { code: "ST", name: "São Tomé and Príncipe", length: 25 },
    IbanCountry { code: "SV", name: "El Salvador", length: 28 },
    IbanCountry { code: "TL", name: "Timor-Leste", length: 23 },
    IbanCountry { code: "TN", name: "Tunisia", length: 24 },
    IbanCountry { code: "TR", name: "Turkey", length: 26 },
    IbanCountry { code: "UA", name: "Ukraine", length: 29 },
    IbanCountry { code: "VA", name: "Vatican City", length: 22 },
    IbanCountry { code: "VG", name: "British Virgin Islands", length: 24 },
    IbanCountry { code: "XK", name: "Kosovo", length: 20 },
];

pub fn lookup(code: &str) -> Option<&'static IbanCountry> {
    COUNTRIES.iter().find(|c| c.code == code)
}