Trait rp2040_hal::typelevel::Is
source · pub trait Iswhere
Self: Sealed + From<IsType<Self>> + Into<IsType<Self>> + Borrow<IsType<Self>> + BorrowMut<IsType<Self>>,{
type Type;
}
Expand description
Marker trait for type identity
This trait is used as part of the AnyKind
trait pattern. It represents
the concept of type identity, because all implementors have
<Self as Is>::Type == Self
. When used as a trait bound with a specific
type, it guarantees that the corresponding type parameter is exactly the
specific type. Stated differently, it guarantees that T == Specific
in
the following example.
where T: Is<Type = Specific>
Moreover, the super traits guarantee that any instance of or reference to a
type T
can be converted into the Specific
type.
fn example<T>(mut any: T)
where
T: Is<Type = Specific>,
{
let specific_mut: &mut Specific = any.borrow_mut();
let specific_ref: &Specific = any.borrow();
let specific: Specific = any.into();
}
Required Associated Types§
Object Safety§
This trait is not object safe.