pub trait Size<const SIZE: usize>: Size<SIZE> { }Expand description
Describes a type whose size is exactly SIZE bytes.
§Examples
#![feature(generic_const_exprs)]
struct OneByte<T: size_trait::Size<1>>(T);
let _ = OneByte(0u8);
struct FourBytes<T: size_trait::Size<4>>(T);
let _ = FourBytes([0u8; 4]);
let _ = FourBytes(0u32);§Compilation Errors
ⓘ
#![feature(generic_const_exprs)]
struct OneByte(u8);
impl size_trait::Size<0> for OneByte {}ⓘ
#![feature(generic_const_exprs)]
struct ZeroBytes;
impl size_trait::Size<1> for ZeroBytes {}ⓘ
#![feature(generic_const_exprs)]
struct ZeroBytes<T: size_trait::Size<0>>(T);
let _ = ZeroBytes(0u8);ⓘ
#![feature(generic_const_exprs)]
struct TwoBytes<T: size_trait::Size<2>>(T);
let _ = TwoBytes(0u8);