This crate gives small utilities for casting between plain data types.
Data comes in five basic forms in Rust, so we have five basic casting functions:
Some casts will never fail (eg:
cast::<u32, f32> always works), other
casts might fail (eg:
cast_ref::<[u8; 4], u32> will fail if the reference
isn’t already aligned to 4). Each casting function has a “try” version which
will return a
Result, and the “normal” version which will simply panic on
If you’re very sure that your type is eligible, you can implement those
traits for your type and then they’ll have full casting support. However,
these traits are
unsafe, and you should carefully read the requirements
before adding the them to your own types.
- This crate is core only by default, but if you’re using Rust 1.36 or later
you can enable the
extern_crate_alloccargo feature for some additional methods related to
Vec. Note that the
docs.rsdocumentation is always built with
extern_crate_alloccargo feature enabled.
$Type. Requires an already initialized
$instancevalue to work with.
#[repr(transparent)]wrapper around the
&[B](possibly with a change in length).
&mut [B](possibly with a change in length).
AnyBitPatterntrait for a struct
CheckedBitPatterntrait for a struct or enum.
Contiguoustrait for an enum
NoUninittrait for a struct or enum
Podtrait for a struct
TransparentWrappertrait for a struct
Zeroabletrait for a struct