triplers 0.1.0

library for parsing, manipulating, and serializing target triples.
Documentation
crate::triple_part! {
    Ppc {
        Ppc    ,
        PpcEL  ,
        Ppc64  ,
        PpcSPE ,
        Ppc64EL,
    }

    canon(self) {
        match self {
            Ppc::Ppc     => "powerpc"    ,
            Ppc::PpcEL   => "powerpcel"  ,
            Ppc::Ppc64   => "powerpc64"  ,
            Ppc::PpcSPE  => "powerpcspe" ,
            Ppc::Ppc64EL => "powerpc64el",
        }
    }

    parse(src) {
        if prefix!("powerpc64el" src) { return Some((Ppc::Ppc64EL, 11)); }
        if prefix!("powerpcspe"  src) { return Some((Ppc::PpcSPE,  10)); }
        if prefix!("powerpc64"   src) { return Some((Ppc::Ppc64,   9)); }
        if prefix!("powerpcel"   src) { return Some((Ppc::PpcEL,   9)); }
        if prefix!("powerpc"     src) { return Some((Ppc::Ppc,     7)); }
        if prefix!("ppc64el" src) { return Some((Ppc::Ppc64EL, 7)); }
        if prefix!("ppcspe"  src) { return Some((Ppc::PpcSPE,  6)); }
        if prefix!("ppc64"   src) { return Some((Ppc::Ppc64,   5)); }
        if prefix!("ppcel"   src) { return Some((Ppc::PpcEL,   5)); }
        if prefix!("ppc"     src) { return Some((Ppc::Ppc,     3)); }
        None
    }

    bits(self) {
        if *self == Ppc::Ppc64 || *self == Ppc::Ppc64EL { return 64; }
        32
    }
}