supply 0.2.0

Provider API for arbitrary number of lifetimes.
Documentation
//! Tests checking that types implement Tagged.

use supply::lt_list::{Lt1, LtList};
use supply::tag::{Tagged, WithLt};

#[allow(unused)]
fn assert_tagged<T: ?Sized + Tagged, L: LtList>()
where
    T::Tag: WithLt<L, Reified = T>,
{
}

// Primitives
const _: () = {
    fn with_none() {
        // assert_tagged::<bool, ()>();
        //
        // assert_tagged::<char, ()>();
        //
        // assert_tagged::<f32, ()>();
        // assert_tagged::<f64, ()>();
        //
        // assert_tagged::<i8, ()>();
        // assert_tagged::<i16, ()>();
        // assert_tagged::<i32, ()>();
        // assert_tagged::<i64, ()>();
        // assert_tagged::<i128, ()>();
        // assert_tagged::<isize, ()>();
        //
        // assert_tagged::<str, ()>();
        //
        // assert_tagged::<u8, ()>();
        // assert_tagged::<u16, ()>();
        // assert_tagged::<u32, ()>();
        // assert_tagged::<u64, ()>();
        // assert_tagged::<u128, ()>();
        // assert_tagged::<usize, ()>();
    }

    fn with_t<'a, T: Tagged + 'a, L: LtList<Head = Lt1<'a>>>()
    where
        T::Tag: WithLt<L, Reified = T>,
    {
        // assert_tagged::<*const T, L>();
        // assert_tagged::<*mut T, L>();
        //
        // assert_tagged::<&'a T, L>();
        // assert_tagged::<&'a mut T, L>();
        //
        // assert_tagged::<[T], L>();
    }

    fn with_n<const N: usize, T: Tagged, L: LtList>()
    where
        T::Tag: WithLt<L, Reified = T>,
    {
        // assert_tagged::<[T; N], L>();
    }

    fn with_t6<'a, T0, T1, T2, T3, T4, T5, L: LtList<Head = Lt1<'a>>>()
    where
        T0: Tagged + 'a,
        T0::Tag: WithLt<L, Reified = T0>,
        T1: Tagged + 'a,
        T1::Tag: WithLt<L, Reified = T1>,
        T2: Tagged + 'a,
        T2::Tag: WithLt<L, Reified = T2>,
        T3: Tagged + 'a,
        T3::Tag: WithLt<L, Reified = T3>,
        T4: Tagged + 'a,
        T4::Tag: WithLt<L, Reified = T4>,
        T5: Tagged + 'a,
        T5::Tag: WithLt<L, Reified = T5>,
    {
        // assert_tagged::<(), L>();
        // assert_tagged::<(T0,), L>();
        // assert_tagged::<(T0, T1), L>();
        // assert_tagged::<(T0, T1, T2), L>();
        // assert_tagged::<(T0, T1, T2, T3), L>();
        // assert_tagged::<(T0, T1, T2, T3, T4), L>();
        // assert_tagged::<(T0, T1, T2, T3, T4, T5), L>();
    }
};