Size

Trait Size 

Source
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);

Implementors§

Source§

impl<const SIZE: usize, T: Size<SIZE>> Size<SIZE> for T