id_sys 0.1.0

Provides data structures which can be marked such that they only work with similarly marked integer data types.
Documentation
#[macro_export]
macro_rules! id_array {
    ($marker: ty; $value: ty) => (
        $crate::IdArray::<$marker, $value, 0>::from_array([])
    );
    ($marker: ty; $value: ty; $elem: expr; $n: expr) => (
        $crate::IdArray::<$marker, $value, $n>::from_array([$elem; $n])
    );
    ($marker: ty; $value: ty; $($x: expr),+ $(,)?) => (
        $crate::IdArray::<$marker, $value, { $crate::internal::macros::count_exprs!($($x),*) }>::from_array([$($x),+])
    );
    ($marker: ty) => (
        $crate::IdArray::<$marker, _, 0>::from_array([])
    );
    ($marker: ty; $elem: expr; $n: expr) => (
        $crate::IdArray::<$marker, _, $n>::from_array([$elem; $n])
    );
    ($marker: ty; $($x: expr),+ $(,)?) => (
        $crate::IdArray::<$marker, _, { $crate::internal::macros::count_exprs!($($x),*) }>::from_array([$($x),+])
    );
    () => (
        $crate::IdArray::<_, _, 0>::from_array([])
    );
    ($elem: expr; $n: expr) => (
        $crate::IdArray::<_, _, $n>::from_array([$elem; $n])
    );
    ($($x: expr),+ $(,)?) => (
        $crate::IdArray::<_, _, { $crate::internal::macros::count_exprs!($($x),*) }>::from_array([$($x),+])
    );
}