macro_rules! type_ne { (< $($generics:tt)* ) => { ... }; ($left_ty:ty, $($rem:tt)*) => { ... }; ($($rem:tt)*) => { ... }; }
Expand description
Constructs a TypeNe
of types that are statically known to be different.
This macro is syntactic sugar for calling
TypeNe::with_fn
with a private
InjTypeFn
implementor.
§Syntax
This macro takes this syntax:
$( < $($generic_param:generic_param),* $(,)? > )? $left_type:ty, $right_type:ty
$(where $($where_cause:tt)*)?
§Limitations
This macro can’t use generic parameters from the surrounding scope, they must be redeclared within the macro to be used.
§Example
use typewit::TypeNe;
const _: TypeNe<u8, (u8,)> = foo();
const fn foo<T>() -> TypeNe<T, (T,)>
where
(T,): Copy,
{
typewit::type_ne!{
<X> X, (X,)
where (X,): Copy
}
}