pub trait ValidLength: LengthSealed + Copy + Display + PartialEq + From<u8> + TryFrom<usize> + Into<u32> {
    type NonZero: NonZero<Self>;
    type InlineStrRepr: Copy + AsRef<[u8]> + AsMut<[u8]> + Default + TypeSize;

    const ZERO: Self;
    const MAX: Self;
    const DANGLING: Self::NonZero;

    // Required method
    fn to_usize(self) -> usize;

    // Provided method
    fn from_usize(len: usize) -> Option<Self> { ... }
}
Expand description

A sealed trait to represent valid lengths for a FixedArray.

This is implemented on u32 for non-16 bit platforms, and u16 on all platforms.

Required Associated Types§

source

type NonZero: NonZero<Self>

source

type InlineStrRepr: Copy + AsRef<[u8]> + AsMut<[u8]> + Default + TypeSize

Available on crate feature typesize only.

Required Associated Constants§

source

const ZERO: Self

source

const MAX: Self

source

const DANGLING: Self::NonZero

Required Methods§

source

fn to_usize(self) -> usize

Provided Methods§

source

fn from_usize(len: usize) -> Option<Self>

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl ValidLength for u8

source§

const ZERO: Self = 0u8

source§

const MAX: Self = 255u8

source§

const DANGLING: Self::NonZero = {transmute(0xff): <u8 as length::ValidLength>::NonZero}

§

type NonZero = NonZero<u8>

§

type InlineStrRepr = [u8; 9]

Available on crate feature typesize only.
source§

fn to_usize(self) -> usize

source§

impl ValidLength for u16

source§

const ZERO: Self = 0u16

source§

const MAX: Self = 65_535u16

source§

const DANGLING: Self::NonZero = {transmute(0xffff): <u16 as length::ValidLength>::NonZero}

§

type NonZero = NonZero<u16>

§

type InlineStrRepr = [u8; 10]

Available on crate feature typesize only.
source§

fn to_usize(self) -> usize

source§

impl ValidLength for u32

Available on 64-bit or 32-bit only.
source§

const ZERO: Self = 0u32

source§

const MAX: Self = 4_294_967_295u32

source§

const DANGLING: Self::NonZero = {transmute(0xffffffff): <u32 as length::ValidLength>::NonZero}

§

type NonZero = NonZero<u32>

§

type InlineStrRepr = [u8; 12]

Available on crate feature typesize only.
source§

fn to_usize(self) -> usize

Implementors§