Expand description
§size-trait
This crate provides traits for restricting the size of type parameters.
§Example
§Zero-sized types
#![feature(generic_const_exprs)]
use size_trait::ZeroSize;
// This struct can only contain `T` when `T` has a size of 0.
struct Zst<T: ZeroSize<true>>(T);
let _ = Zst([0u8; 0]);
let _ = Zst(());§Fixed-sized types
#![feature(generic_const_exprs)]
use size_trait::Size;
// This struct can only contain `T` when `T` has a size of 4 bytes.
struct Fixed4Bytes<T: Size<4>>(T);
let _ = Fixed4Bytes([0u8; 4]);
let _ = Fixed4Bytes(0u32);§Warning
This crate relies on the unstable feature generic_const_exprs. This feature is only available on nightly Rust. It is also not guaranteed to be stable in the future. Tracking issue #76560.
In order for this crate to work properly, you must enable the generic_const_exprs feature in your crate:
#![feature(generic_const_exprs)]§Author
- Jacob Lindahl @sudo_build geeklaunch.io
Traits§
- Bounded
Size - Describes a type whose size is between
MINandMAXbytes (inclusive). - MaxSize
- Describes a type whose size is at most
SIZEbytes. - MinSize
- Describes a type whose size is at least
SIZEbytes. - Size
- Describes a type whose size is exactly
SIZEbytes. - Size
Greater Than - Describes a type whose size is greater than
SIZEbytes. - Size
Less Than - Describes a type whose size is less than
SIZEbytes. - Zero
Size - Describes a type whose size is zero.