triplers 0.1.0

library for parsing, manipulating, and serializing target triples.
Documentation
use crate::vendor::Vendor;
use crate::{Canonicalizable, Parsable};

#[test]
fn test_vendor_parse() {
    let cases = [
        ("microsoft", Vendor::Microsoft, 9),
        ("freescale", Vendor::Freescale, 9),
        ("imagtech", Vendor::ImagTech, 8),
        ("mipstech", Vendor::MipsTech, 8),
        ("unknown", Vendor::Unknown, 7),
        ("openemb", Vendor::OpenEmb, 7),
        ("nvidia", Vendor::Nvidia, 6),
        ("intel", Vendor::Intel, 5),
        ("apple", Vendor::Apple, 5),
        ("scei", Vendor::SCEI, 4),
        ("mesa", Vendor::Mesa, 4),
        ("suse", Vendor::SUSE, 4),
        ("meta", Vendor::Meta, 4),
        ("kvin", Vendor::Kvin, 4),
        ("ibm", Vendor::IBM, 3),
        ("csr", Vendor::CSR, 3),
        ("pc", Vendor::PC, 2),
    ];
    for (input, expected, expected_len) in cases {
        let (vendor, len) = Vendor::reduce(input).unwrap();
        assert_eq!(vendor, expected);
        assert_eq!(len, expected_len);
        assert_eq!(vendor.canonicalize(), input);
    }
}