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 Constants§
Required Associated Types§
type NonZero: NonZero<Self>
type InlineStrRepr: Copy + AsRef<[u8]> + AsMut<[u8]> + Default + TypeSize
Available on crate feature
typesize
only.Required Methods§
Provided Methods§
fn from_usize(len: usize) -> Option<Self>
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.
Implementations on Foreign Types§
Source§impl ValidLength for u8
impl ValidLength for u8
Source§impl ValidLength for u16
impl ValidLength for u16
const ZERO: Self = 0u16
const MAX: Self = 65_535u16
const DANGLING: Self::NonZero = {transmute(0xffff): <u16 as length::ValidLength>::NonZero}
type NonZero = NonZero<u16>
Source§type InlineStrRepr = [u8; 10]
type InlineStrRepr = [u8; 10]
Available on crate feature
typesize
only.fn to_usize(self) -> usize
Source§impl ValidLength for u32
Available on 64-bit or 32-bit only.
impl ValidLength for u32
Available on 64-bit or 32-bit only.
const ZERO: Self = 0u32
const MAX: Self = 4_294_967_295u32
const DANGLING: Self::NonZero = {transmute(0xffffffff): <u32 as length::ValidLength>::NonZero}
type NonZero = NonZero<u32>
Source§type InlineStrRepr = [u8; 12]
type InlineStrRepr = [u8; 12]
Available on crate feature
typesize
only.