barse 0.3.0

Binary parsing library.
Documentation
use crate::{ByteRead, FromByteReader, Result};

from_byte_reader_tuple_impl_recursive! {
    A, B, C,
    D, E, F,
    G, H, I,
    J, K, L
}

macro_rules! from_byte_reader_tuple_impl {
    ($($templs:ident),+ $(,)?) => {
        impl<'input, SharedErr, $($templs),*> FromByteReader<'input> for ($($templs,)*)
        where
            $(
            $templs: FromByteReader<'input, Err = SharedErr>,
            )*
        {
            type Err = SharedErr;
            fn from_byte_reader<R>(mut reader: R) -> Result<Self, SharedErr>
            where
                R: ByteRead<'input>,
            {
                Ok((
                    $(
                    <$templs as FromByteReader>::from_byte_reader(&mut reader)?,
                    )*
                ))
            }
        }

    };
}
use from_byte_reader_tuple_impl;

macro_rules! from_byte_reader_tuple_impl_recursive {
    ($first: tt) => {
        from_byte_reader_tuple_impl! {$first}
    };
    ($first: tt, $($other: tt),+) => {
        from_byte_reader_tuple_impl! {$first, $($other),*}
        from_byte_reader_tuple_impl_recursive! {$($other),*}
    }
}
use from_byte_reader_tuple_impl_recursive;