#[ doc( hidden ) ]
#[ macro_export ]
macro_rules! _implements
{
( $V : expr => $( $Traits : tt )+ ) =>
{{
use ::core::marker::PhantomData;
trait False
{
fn get( self : &'_ Self ) -> bool { false }
}
impl< T > False
for &'_ PhantomData< T >
where T : ?Sized,
{}
trait True
{
fn get( self : &'_ Self ) -> bool { true }
}
impl< T > True
for PhantomData< T >
where T : $( $Traits )+ + ?Sized,
{}
fn does< T : Sized >( _ : &T ) -> PhantomData< T >
{
PhantomData
}
( &does( &$V ) ).get()
}};
}