Asserts that all types in a list are equal to each other.
Often times, type aliases are used to express usage semantics via naming. In
some cases, the underlying type may differ based on platform. However, other
c_float will always alias the same type.
use std::os::raw::c_float; assert_type_eq_all!(c_float, f32);
This macro can also be used to compare types that involve lifetimes! Just
'static in that case:
type Buf<'a> = &'a [u8]; assert_type_eq_all!(Buf<'static>, &'static [u8]);
The following example fails to compile because
str do not
refer to the same type:
This should also work the other way around, regardless of