[−][src]Crate zeroable
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 bytemuck; |
pub use crate::assert_zeroable::AssertZeroable; |
pub use crate::assert_zeroable::GetAssertZeroable; |
Modules
assert_zeroable | Contains both a trait and a type to contrain some type with |
zeroable_docs | Documentation for the |
Traits
Zeroable | A reexport of the
|
Derive Macros
Zeroable | This macro is documented in |