triplers 0.1.1

library for parsing, manipulating, and serializing target triples.
Documentation
crate::triple_part! {
    SpirV {
        SpirV,
        V10,
        V11,
        V12,
        V13,
        V14,
        V15,
        V16,
    }

    canon(self) {
        match self {
            SpirV::SpirV => "spirv",
            SpirV::V10   => "spirv1.0",
            SpirV::V11   => "spirv1.1",
            SpirV::V12   => "spirv1.2",
            SpirV::V13   => "spirv1.3",
            SpirV::V14   => "spirv1.4",
            SpirV::V15   => "spirv1.5",
            SpirV::V16   => "spirv1.6",
        }
    }

    parse(src) {
        if prefix!("spirv1.6" src) { return Some((SpirV::V16, 8)); }
        if prefix!("spirv1.5" src) { return Some((SpirV::V15, 8)); }
        if prefix!("spirv1.4" src) { return Some((SpirV::V14, 8)); }
        if prefix!("spirv1.3" src) { return Some((SpirV::V13, 8)); }
        if prefix!("spirv1.2" src) { return Some((SpirV::V12, 8)); }
        if prefix!("spirv1.1" src) { return Some((SpirV::V11, 8)); }
        if prefix!("spirv1.0" src) { return Some((SpirV::V10, 8)); }
        if prefix!("spirv"    src) { return Some((SpirV::SpirV, 5)); }
        None
    }

    bits(self) {
        0
    }
}