textcode 0.3.1

Text encoding/decoding library. Supports: UTF-8, ISO6937, ISO8859, GB2312
Documentation
use textcode::{
    Iso8859_5,
    Iso8859_6,
    Iso8859_11,
    decode,
    decode_to_slice,
    encode,
    encode_to_slice,
};

#[test]
fn test_iso8859_5() {
    let u = "Привет!";
    let c: &[u8] = &[0xbf, 0xe0, 0xd8, 0xd2, 0xd5, 0xe2, 0x21];
    let mut buf = [0u8; 512];

    let enc = encode::<Iso8859_5>(u);
    assert_eq!(enc.as_slice(), c);

    let enc_len = encode_to_slice::<Iso8859_5>(u, &mut buf);
    assert_eq!(enc, &buf[.. enc_len]);

    let dec = decode::<Iso8859_5>(c);
    assert_eq!(u, dec.as_str());

    let dec_len = decode_to_slice::<Iso8859_5>(c, &mut buf);
    assert_eq!(dec.as_bytes(), &buf[.. dec_len]);
}

#[test]
fn test_iso8859_6() {
    let u = "مرحبا";
    let c: &[u8] = &[0xe5, 0xd1, 0xcd, 0xc8, 0xc7];
    let mut buf = [0u8; 512];

    let enc = encode::<Iso8859_6>(u);
    assert_eq!(enc.as_slice(), c);

    let enc_len = encode_to_slice::<Iso8859_6>(u, &mut buf);
    assert_eq!(enc, &buf[.. enc_len]);

    let dec = decode::<Iso8859_6>(c);
    assert_eq!(u, dec.as_str());

    let dec_len = decode_to_slice::<Iso8859_6>(c, &mut buf);
    assert_eq!(dec.as_bytes(), &buf[.. dec_len]);
}

#[test]
fn test_iso8859_11() {
    let u = "มีวันที่ดี!";
    let c: &[u8] = &[
        0xc1, 0xd5, 0xc7, 0xd1, 0xb9, 0xb7, 0xd5, 0xe8, 0xb4, 0xd5, 0x21,
    ];
    let mut buf = [0u8; 512];

    let enc = encode::<Iso8859_11>(u);
    assert_eq!(enc.as_slice(), c);

    let enc_len = encode_to_slice::<Iso8859_11>(u, &mut buf);
    assert_eq!(enc, &buf[.. enc_len]);

    let dec = decode::<Iso8859_11>(c);
    assert_eq!(u, dec.as_str());

    let dec_len = decode_to_slice::<Iso8859_11>(c, &mut buf);
    assert_eq!(dec.as_bytes(), &buf[.. dec_len]);
}