parse 0.1.2

Basic parsing from str/bytes. Conversion back to bytes.
Documentation
//! Turn things into bytes (eg. u64 -> [u8; 8]).

use std::mem;

macro_rules! int_be {
    ($T:ident, $name:ident, $size:expr) => {
        #[inline]
        pub fn $name(x: $T) -> [u8; $size] {
            unsafe { mem::transmute(x.to_be()) }
        }
    }
}
int_be!(u16, u16_be, 2);
int_be!(i16, i16_be, 2);
int_be!(u32, u32_be, 4);
int_be!(i32, i32_be, 4);
int_be!(u64, u64_be, 8);
int_be!(i64, i64_be, 8);

macro_rules! int_le {
    ($T:ident, $name:ident, $size:expr) => {
        #[inline]
        pub fn $name(x: $T) -> [u8; $size] {
            unsafe { mem::transmute(x.to_le()) }
        }
    }
}
int_le!(u16, u16_le, 2);
int_le!(i16, i16_le, 2);
int_le!(u32, u32_le, 4);
int_le!(i32, i32_le, 4);
int_le!(u64, u64_le, 8);
int_le!(i64, i64_le, 8);

#[test]
fn test_bytes() {
    assert_eq!([0xff, 0x01], u16_be(0xff01));
    assert_eq!([0x01, 0xff], u16_le(0xff01));
}