stl-bin-parser 0.0.1

A simple parser for the STL binary format.
Documentation
macro_rules! test_data {
    ($($ty:ident { $($val:expr),* $(,)* })*) => {{
        use byteorder::{ByteOrder, LittleEndian};
        use std::mem;
        let mut vec = Vec::new();
        let mut _n = 0;
        $(
            let size = mem::size_of::<$ty>();
            $(
                for _ in 0..size {
                    vec.push(0);
                }
                write_test_data!(&mut vec[_n.._n+size], $ty, $val);
            _n += size;
            )*
        )*
        vec
    }};
}

macro_rules! write_test_data {
    ($slice:expr, i16, $val:expr) => {
        LittleEndian::write_i16($slice, $val);
    };
    ($slice:expr, i32, $val:expr) => {
        LittleEndian::write_i32($slice, $val);
    };
    ($slice:expr, i64, $val:expr) => {
        LittleEndian::write_i64($slice, $val);
    };
    ($slice:expr, f32, $val:expr) => {
        LittleEndian::write_f32($slice, $val);
    };
    ($slice:expr, f64, $val:expr) => {
        LittleEndian::write_f64($slice, $val);
    };
    ($slice:expr, u8, $val:expr) => {
        $slice[0] = $val;
    };
    ($slice:expr, u16, $val:expr) => {
        LittleEndian::write_u16($slice, $val);
    };
    ($slice:expr, u32, $val:expr) => {
        LittleEndian::write_u32($slice, $val);
    };
    ($slice:expr, u64, $val:expr) => {
        LittleEndian::write_u64($slice, $val);
    };
}