Expand description
A bytemuck adjacent library,with a derive macro for
Zeroable
.
§Derive Documentation
Here is the documentation for the Zeroable
derive macro
§Examples
§Structs
use zeroable::Zeroable;
#[derive(Debug,PartialEq,Zeroable)]
struct Point3D<T>{
x:T,
y:T,
z:T,
}
assert_eq!( Point3D::zeroed() , Point3D{ x:0, y:0, z:0 } );
§Enums
There are some restrictions for enums,documented in the Zeroable macro docs .
use zeroable::Zeroable;
#[derive(Debug,PartialEq,Zeroable)]
#[repr(u8)]
enum Ternary{
Undefined,
False,
True,
}
assert_eq!( Ternary::zeroed() , Ternary::Undefined );
§Unions
There are some restrictions for unions,documented in the Zeroable macro docs .
use zeroable::Zeroable;
#[derive(Zeroable)]
union Signedness{
signed:i8,
unsigned:u8,
}
unsafe{
assert_eq!( Signedness::zeroed().signed , 0_i8 );
assert_eq!( Signedness::zeroed().unsigned , 0_u8 );
}
§Features
-
“print_type”: Slightly improved debugging, shows the type of
T
inAssertZeroable<T>
’s ’ Debug implementation -
“nightly_docs”: Makes the documentation examples that require Rust nightly run in doctests, and shows them as tested in the documentation.
§#[no_std]
support
This crate is #[no_std]
,and only requires the core
library.
Re-exports§
pub use crate::assert_zeroable::AssertZeroable;
pub use crate::assert_zeroable::GetAssertZeroable;
pub use bytemuck;
Modules§
- assert_
zeroable - Contains both a trait and a type to contrain some type with
Zeroable
. - zeroable_
docs - Documentation for the
Zeroable
derive macro.
Traits§
- Zeroable
- A reexport of the
bytemuck::Zeroable
trait.
Derive Macros§
- Zeroable
- This macro is documented in
zeroable::zeroable_docs
. (the link only works in thezeroable
crate)