mem-query 0.0.1

Relational algebra interface for Rust collections
#![allow(unused_macros)]

macro_rules! assert_type_eq {
    {$t1:ty : $t2:ty} => {let _: ::std::marker::PhantomData<$t2> = ::std::marker::PhantomData::<$t1>; }
}

macro_rules! assert_trait {
    {$t1:ty : $($trait:tt)+} => {
        {
            fn test<T:$($trait)+>(_: ::std::marker::PhantomData<T>) {}
            test(::std::marker::PhantomData::<$t1>);
        }
    }
}

macro_rules! assert_val_type {
    {$e:ident : $t2:ty} => {let _: & $t2 = &($e); }
}

macro_rules! assert_val_trait {
    {$e:ident : $($trait:tt)+} => {
        {
            fn test<T:$($trait)+>(_: &T) {}
            test(&($e));
        }
    }
}