triplers 0.1.1

library for parsing, manipulating, and serializing target triples.
Documentation
crate::triple_part! {
    Env {
        RayGeneration,
        Amplification,
        RootSignature,
        GNUEABIHFT64,
        Intersection,
        GNUEABIT64,
        MuslABIN32,
        MuslEABIHF,
        ClosestHit,
        GNUABIN32,
        GNUEABIHF,
        MuslABI64,
        Simulator,
        PAuthTest,
        GNUABI64,
        GNUILP32,
        MuslEABI,
        MuslWALI,
        Geometry,
        Callable,
        Unknown,
        GNUEABI,
        Android,
        MuslF32,
        MuslX32,
        Itanium,
        CoreCLR,
        Compute,
        Library,
        OpenHOS,
        GNUT64,
        GNUF32,
        GNUF64,
        GNUX32,
        CODE16,
        EABIHF,
        MuslSF,
        Cygnus,
        MacABI,
        Vertex,
        Domain,
        AnyHit,
        GNUSF,
        Pixel,
        Mlibc,
        EABI,
        Musl,
        LLVM,
        MSVC,
        Hull,
        Miss,
        Mesh,
        MTIA,
        Vaos,
        GNU,
    }

    canon(self) {
        self.into()
    }

    parse(src) {
        if prefix!("raygeneration"  src) { return Some((Env::RayGeneration,  13)); }
        if prefix!("amplification"  src) { return Some((Env::Amplification,  13)); }
        if prefix!("rootsignature"  src) { return Some((Env::RootSignature,  13)); }
        if prefix!("gnueabihft64"   src) { return Some((Env::GNUEABIHFT64,   12)); }
        if prefix!("intersection"   src) { return Some((Env::Intersection,   12)); }
        if prefix!("gnueabit64"     src) { return Some((Env::GNUEABIT64,     10)); }
        if prefix!("muslabin32"     src) { return Some((Env::MuslABIN32,     10)); }
        if prefix!("musleabihf"     src) { return Some((Env::MuslEABIHF,     10)); }
        if prefix!("closesthit"     src) { return Some((Env::ClosestHit,     10)); }
        if prefix!("gnuabin32"      src) { return Some((Env::GNUABIN32,       9)); }
        if prefix!("gnueabihf"      src) { return Some((Env::GNUEABIHF,       9)); }
        if prefix!("muslabi64"      src) { return Some((Env::MuslABI64,       9)); }
        if prefix!("simulator"      src) { return Some((Env::Simulator,       9)); }
        if prefix!("pauthtest"      src) { return Some((Env::PAuthTest,       9)); }
        if prefix!("gnuabi64"       src) { return Some((Env::GNUABI64,        8)); }
        if prefix!("gnuilp32"       src) { return Some((Env::GNUILP32,        8)); }
        if prefix!("musleabi"       src) { return Some((Env::MuslEABI,        8)); }
        if prefix!("muslwali"       src) { return Some((Env::MuslWALI,        8)); }
        if prefix!("geometry"       src) { return Some((Env::Geometry,        8)); }
        if prefix!("callable"       src) { return Some((Env::Callable,        8)); }
        if prefix!("gnueabi"        src) { return Some((Env::GNUEABI,         7)); }
        if prefix!("android"        src) { return Some((Env::Android,         7)); }
        if prefix!("muslf32"        src) { return Some((Env::MuslF32,         7)); }
        if prefix!("muslx32"        src) { return Some((Env::MuslX32,         7)); }
        if prefix!("itanium"        src) { return Some((Env::Itanium,         7)); }
        if prefix!("coreclr"        src) { return Some((Env::CoreCLR,         7)); }
        if prefix!("compute"        src) { return Some((Env::Compute,         7)); }
        if prefix!("library"        src) { return Some((Env::Library,         7)); }
        if prefix!("openhos"        src) { return Some((Env::OpenHOS,         7)); }
        if prefix!("unknown"        src) { return Some((Env::Unknown,         7)); }
        if prefix!("gnut64"         src) { return Some((Env::GNUT64,          6)); }
        if prefix!("gnuf32"         src) { return Some((Env::GNUF32,          6)); }
        if prefix!("gnuf64"         src) { return Some((Env::GNUF64,          6)); }
        if prefix!("gnux32"         src) { return Some((Env::GNUX32,          6)); }
        if prefix!("code16"         src) { return Some((Env::CODE16,          6)); }
        if prefix!("eabihf"         src) { return Some((Env::EABIHF,          6)); }
        if prefix!("muslsf"         src) { return Some((Env::MuslSF,          6)); }
        if prefix!("cygnus"         src) { return Some((Env::Cygnus,          6)); }
        if prefix!("macabi"         src) { return Some((Env::MacABI,          6)); }
        if prefix!("vertex"         src) { return Some((Env::Vertex,          6)); }
        if prefix!("domain"         src) { return Some((Env::Domain,          6)); }
        if prefix!("anyhit"         src) { return Some((Env::AnyHit,          6)); }
        if prefix!("gnusf"          src) { return Some((Env::GNUSF,           5)); }
        if prefix!("pixel"          src) { return Some((Env::Pixel,           5)); }
        if prefix!("mlibc"          src) { return Some((Env::Mlibc,           5)); }
        if prefix!("eabi"           src) { return Some((Env::EABI,            4)); }
        if prefix!("musl"           src) { return Some((Env::Musl,            4)); }
        if prefix!("llvm"           src) { return Some((Env::LLVM,            4)); }
        if prefix!("msvc"           src) { return Some((Env::MSVC,            4)); }
        if prefix!("hull"           src) { return Some((Env::Hull,            4)); }
        if prefix!("miss"           src) { return Some((Env::Miss,            4)); }
        if prefix!("mesh"           src) { return Some((Env::Mesh,            4)); }
        if prefix!("mtia"           src) { return Some((Env::MTIA,            4)); }
        if prefix!("vaos"           src) { return Some((Env::Vaos,            4)); }
        if prefix!("gnu"            src) { return Some((Env::GNU,             3)); }
        None
    }

    bits(self) { 0 }
}