letterbomb 5.0.0

A fork of the classic Wii hacking tool from fail0verflow
Documentation
use std::collections::HashSet;
use std::sync::OnceLock;

pub fn oui_list() -> &'static HashSet<String> {
    static OUI: OnceLock<HashSet<String>> = OnceLock::new();
    OUI.get_or_init(|| {
        HashSet::from(
            [
                "0009BF", "001656", "0017AB", "00191D", "0019FD", "001AE9", "001B7A", "001BEA",
                "001CBE", "001DBC", "001E35", "001EA9", "001F32", "001FC5", "002147", "0021BD",
                "00224C", "0022AA", "0022D7", "002331", "0023CC", "00241E", "002444", "0024F3",
                "0025A0", "002659", "002709", "0403D6", "182A7B", "1C4586", "200BCF", "201C3A",
                "28CF51", "2C10C1", "342FBD", "34AF2C", "40D28A", "40F407", "483177", "48A5E7",
                "50236D", "582F40", "58B03E", "58BDA3", "5C0CE6", "5C521E", "601AC7", "606BFF",
                "64B5C6", "702C09", "7048F7", "70F088", "748469", "74F9CA", "7820A5", "78A2A0",
                "7CBB8A", "80D2E5", "8C56C5", "8CCDE8", "904528", "9458CB", "98415C", "98B6E9",
                "98E8FA", "9CE635", "A438CC", "A45C27", "A4C0E1", "B87826", "B88AEC", "B8AE6E",
                "BC9EBB", "BCCE25", "CC5B31", "CC9E00", "CCFB65", "D05509", "D4F057", "D86BF7",
                "DC68EB", "DCCD18", "E00C7F", "E0E751", "E0F6B5", "E84ECE", "E8A0CD", "E8DA20",
                "ECC40D",
            ]
            .map(|s| s.to_owned()),
        )
    })
}

#[cfg(test)]
mod tests {
    use crate::oui::oui_list;

    #[test]
    fn oui_init_ok() {
        assert!(oui_list().contains("0009BF"));
        assert!(oui_list().contains("0017AB"));
        assert!(oui_list().contains("ECC40D"));
        assert!(oui_list().contains("5C521E"));
        assert_eq!(oui_list().len(), 89);
    }
}