Trait devela::mem::BitSize

source ·
pub trait BitSize<const LEN: usize>: ByteSize {
    const BIT_SIZE: usize = _;
    const MIN_BYTE_SIZE: usize = _;

    // Provided methods
    fn bit_size(&self) -> usize { ... }
    fn min_byte_size(&self) -> usize { ... }
}
Expand description

Indicates a size of exactly LEN bits for the relevant data part of this type.

E.g. a bool has a BitSize of 1 bit.

Provided Associated Constants§

source

const BIT_SIZE: usize = _

The bit size of this type (only the relevant data part, without padding).

§Panics

Panics if MIN_BYTE_SIZE > [BYTE_SIZE][Size::BYTE_SIZE],

source

const MIN_BYTE_SIZE: usize = _

The rounded up byte size for this type.

This is the minimum number of full bytes needed to represent this type. Basically (LEN + 7) / 8.

§Panics

Panics if MIN_BYTE_SIZE > [BYTE_SIZE][Size::BYTE_SIZE],

Provided Methods§

source

fn bit_size(&self) -> usize

Returns the bit size of this type (only the relevant data part, without padding).

§Panics

Panics if MIN_BYTE_SIZE > [BYTE_SIZE][Size::BYTE_SIZE],

source

fn min_byte_size(&self) -> usize

Returns the rounded up byte size for this type.

This is the minimum number of full bytes needed to represent this type. Basically (LEN + 7) / 8.

§Panics

Panics if MIN_BYTE_SIZE > [BYTE_SIZE][Size::BYTE_SIZE],

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl BitSize<0> for ()

source§

impl BitSize<1> for bool

source§

impl BitSize<8> for i8

source§

impl BitSize<8> for u8

source§

impl BitSize<16> for i16

source§

impl BitSize<16> for u16

source§

impl BitSize<32> for char

source§

impl BitSize<32> for f32

source§

impl BitSize<32> for i32

source§

impl BitSize<32> for isize

source§

impl BitSize<32> for u32

source§

impl BitSize<32> for usize

source§

impl BitSize<64> for f64

source§

impl BitSize<64> for i64

source§

impl BitSize<64> for u64

source§

impl BitSize<128> for i128

source§

impl BitSize<128> for u128

source§

impl BitSize<{$PTR_BITS * 2}> for &str

source§

impl<T> BitSize<{$PTR_BITS * 2}> for &[T]

source§

impl<T> BitSize<{$PTR_BITS * 2}> for &mut [T]

source§

impl<T: BitSize<8>> BitSize<{$bits*$len}> for [T; 1]

source§

impl<T: BitSize<8>> BitSize<{$bits*$len}> for [T; 2]

source§

impl<T: BitSize<8>> BitSize<{$bits*$len}> for [T; 4]

source§

impl<T: BitSize<8>> BitSize<{$bits*$len}> for [T; 8]

source§

impl<T: BitSize<8>> BitSize<{$bits*$len}> for [T; 16]

source§

impl<T: BitSize<16>> BitSize<{$bits*$len}> for [T; 1]

source§

impl<T: BitSize<16>> BitSize<{$bits*$len}> for [T; 2]

source§

impl<T: BitSize<16>> BitSize<{$bits*$len}> for [T; 4]

source§

impl<T: BitSize<16>> BitSize<{$bits*$len}> for [T; 8]

source§

impl<T: BitSize<16>> BitSize<{$bits*$len}> for [T; 16]

source§

impl<T: BitSize<24>> BitSize<{$bits*$len}> for [T; 1]

source§

impl<T: BitSize<24>> BitSize<{$bits*$len}> for [T; 2]

source§

impl<T: BitSize<24>> BitSize<{$bits*$len}> for [T; 4]

source§

impl<T: BitSize<24>> BitSize<{$bits*$len}> for [T; 8]

source§

impl<T: BitSize<24>> BitSize<{$bits*$len}> for [T; 16]

source§

impl<T: BitSize<32>> BitSize<{$bits*$len}> for [T; 1]

source§

impl<T: BitSize<32>> BitSize<{$bits*$len}> for [T; 2]

source§

impl<T: BitSize<32>> BitSize<{$bits*$len}> for [T; 4]

source§

impl<T: BitSize<32>> BitSize<{$bits*$len}> for [T; 8]

source§

impl<T: BitSize<32>> BitSize<{$bits*$len}> for [T; 16]

source§

impl<T: BitSize<40>> BitSize<{$bits*$len}> for [T; 1]

source§

impl<T: BitSize<40>> BitSize<{$bits*$len}> for [T; 2]

source§

impl<T: BitSize<40>> BitSize<{$bits*$len}> for [T; 4]

source§

impl<T: BitSize<40>> BitSize<{$bits*$len}> for [T; 8]

source§

impl<T: BitSize<40>> BitSize<{$bits*$len}> for [T; 16]

source§

impl<T: BitSize<48>> BitSize<{$bits*$len}> for [T; 1]

source§

impl<T: BitSize<48>> BitSize<{$bits*$len}> for [T; 2]

source§

impl<T: BitSize<48>> BitSize<{$bits*$len}> for [T; 4]

source§

impl<T: BitSize<48>> BitSize<{$bits*$len}> for [T; 8]

source§

impl<T: BitSize<48>> BitSize<{$bits*$len}> for [T; 16]

source§

impl<T: BitSize<56>> BitSize<{$bits*$len}> for [T; 1]

source§

impl<T: BitSize<56>> BitSize<{$bits*$len}> for [T; 2]

source§

impl<T: BitSize<56>> BitSize<{$bits*$len}> for [T; 4]

source§

impl<T: BitSize<56>> BitSize<{$bits*$len}> for [T; 8]

source§

impl<T: BitSize<56>> BitSize<{$bits*$len}> for [T; 16]

source§

impl<T: BitSize<64>> BitSize<{$bits*$len}> for [T; 1]

source§

impl<T: BitSize<64>> BitSize<{$bits*$len}> for [T; 2]

source§

impl<T: BitSize<64>> BitSize<{$bits*$len}> for [T; 4]

source§

impl<T: BitSize<64>> BitSize<{$bits*$len}> for [T; 8]

source§

impl<T: BitSize<64>> BitSize<{$bits*$len}> for [T; 16]

source§

impl<T: BitSize<72>> BitSize<{$bits*$len}> for [T; 1]

source§

impl<T: BitSize<72>> BitSize<{$bits*$len}> for [T; 2]

source§

impl<T: BitSize<72>> BitSize<{$bits*$len}> for [T; 4]

source§

impl<T: BitSize<72>> BitSize<{$bits*$len}> for [T; 8]

source§

impl<T: BitSize<72>> BitSize<{$bits*$len}> for [T; 16]

source§

impl<T: BitSize<80>> BitSize<{$bits*$len}> for [T; 1]

source§

impl<T: BitSize<80>> BitSize<{$bits*$len}> for [T; 2]

source§

impl<T: BitSize<80>> BitSize<{$bits*$len}> for [T; 4]

source§

impl<T: BitSize<80>> BitSize<{$bits*$len}> for [T; 8]

source§

impl<T: BitSize<80>> BitSize<{$bits*$len}> for [T; 16]

source§

impl<T: BitSize<88>> BitSize<{$bits*$len}> for [T; 1]

source§

impl<T: BitSize<88>> BitSize<{$bits*$len}> for [T; 2]

source§

impl<T: BitSize<88>> BitSize<{$bits*$len}> for [T; 4]

source§

impl<T: BitSize<88>> BitSize<{$bits*$len}> for [T; 8]

source§

impl<T: BitSize<88>> BitSize<{$bits*$len}> for [T; 16]

source§

impl<T: BitSize<96>> BitSize<{$bits*$len}> for [T; 1]

source§

impl<T: BitSize<96>> BitSize<{$bits*$len}> for [T; 2]

source§

impl<T: BitSize<96>> BitSize<{$bits*$len}> for [T; 4]

source§

impl<T: BitSize<96>> BitSize<{$bits*$len}> for [T; 8]

source§

impl<T: BitSize<96>> BitSize<{$bits*$len}> for [T; 16]

source§

impl<T: BitSize<104>> BitSize<{$bits*$len}> for [T; 1]

source§

impl<T: BitSize<104>> BitSize<{$bits*$len}> for [T; 2]

source§

impl<T: BitSize<104>> BitSize<{$bits*$len}> for [T; 4]

source§

impl<T: BitSize<104>> BitSize<{$bits*$len}> for [T; 8]

source§

impl<T: BitSize<104>> BitSize<{$bits*$len}> for [T; 16]

source§

impl<T: BitSize<112>> BitSize<{$bits*$len}> for [T; 1]

source§

impl<T: BitSize<112>> BitSize<{$bits*$len}> for [T; 2]

source§

impl<T: BitSize<112>> BitSize<{$bits*$len}> for [T; 4]

source§

impl<T: BitSize<112>> BitSize<{$bits*$len}> for [T; 8]

source§

impl<T: BitSize<112>> BitSize<{$bits*$len}> for [T; 16]

source§

impl<T: BitSize<120>> BitSize<{$bits*$len}> for [T; 1]

source§

impl<T: BitSize<120>> BitSize<{$bits*$len}> for [T; 2]

source§

impl<T: BitSize<120>> BitSize<{$bits*$len}> for [T; 4]

source§

impl<T: BitSize<120>> BitSize<{$bits*$len}> for [T; 8]

source§

impl<T: BitSize<120>> BitSize<{$bits*$len}> for [T; 16]

source§

impl<T: BitSize<128>> BitSize<{$bits*$len}> for [T; 1]

source§

impl<T: BitSize<128>> BitSize<{$bits*$len}> for [T; 2]

source§

impl<T: BitSize<128>> BitSize<{$bits*$len}> for [T; 4]

source§

impl<T: BitSize<128>> BitSize<{$bits*$len}> for [T; 8]

source§

impl<T: BitSize<128>> BitSize<{$bits*$len}> for [T; 16]

Implementors§

source§

impl BitSize<0> for Infallible

source§

impl BitSize<0> for PhantomPinned

source§

impl BitSize<1> for AtomicBool

source§

impl BitSize<7> for AsciiChar

source§

impl BitSize<7> for Char7

source§

impl BitSize<8> for AtomicOrdering

source§

impl BitSize<8> for Ordering

source§

impl BitSize<8> for AtomicI8

source§

impl BitSize<8> for AtomicU8

source§

impl BitSize<8> for Char8

source§

impl BitSize<8> for NonZeroI8

source§

impl BitSize<8> for NonZeroU8

source§

impl BitSize<16> for AtomicI16

source§

impl BitSize<16> for AtomicU16

source§

impl BitSize<16> for Char16

source§

impl BitSize<16> for NonZeroI16

source§

impl BitSize<16> for NonZeroU16

source§

impl BitSize<24> for Char24

source§

impl BitSize<32> for AtomicF32

source§

impl BitSize<32> for AtomicI32

source§

impl BitSize<32> for AtomicIsize

source§

impl BitSize<32> for AtomicU32

source§

impl BitSize<32> for AtomicUsize

source§

impl BitSize<32> for Char32

source§

impl BitSize<32> for NonZeroI32

source§

impl BitSize<32> for NonZeroIsize

source§

impl BitSize<32> for NonZeroU32

source§

impl BitSize<32> for NonZeroUsize

source§

impl BitSize<64> for AtomicF64

source§

impl BitSize<64> for AtomicI64

source§

impl BitSize<64> for AtomicU64

source§

impl BitSize<64> for NonZeroI64

source§

impl BitSize<64> for NonZeroU64

source§

impl BitSize<128> for AtomicI128

source§

impl BitSize<128> for AtomicU128

source§

impl BitSize<128> for Duration

source§

impl BitSize<128> for Instant

source§

impl BitSize<128> for SystemTime

source§

impl BitSize<128> for NonZeroI128

source§

impl BitSize<128> for NonZeroU128

source§

impl BitSize<{$PTR_BITS * 3}> for String

source§

impl BitSize<{$PTR_BITS * 3}> for StringEgc

source§

impl<K, V> BitSize<{$PTR_BITS * 3}> for HashMap<K, V>

source§

impl<K, V> BitSize<{$PTR_BITS * 3}> for BTreeMap<K, V>

source§

impl<T> BitSize<0> for PhantomData<T>

source§

impl<T> BitSize<32> for AtomicPtr<T>

source§

impl<T> BitSize<{$PTR_BITS * 1}> for Rc<T>

source§

impl<T> BitSize<{$PTR_BITS * 1}> for Arc<T>

source§

impl<T> BitSize<{$PTR_BITS * 3}> for HashSet<T>

source§

impl<T> BitSize<{$PTR_BITS * 3}> for LinkedList<T>

source§

impl<T> BitSize<{$PTR_BITS * 3}> for BTreeSet<T>

source§

impl<T> BitSize<{$PTR_BITS * 3}> for BinaryHeap<T>

source§

impl<T> BitSize<{$PTR_BITS * 3}> for Mutex<T>

source§

impl<T> BitSize<{$PTR_BITS * 3}> for Vec<T>

source§

impl<T> BitSize<{$PTR_BITS * 3}> for VecDeque<T>

source§

impl<T: BitSize<LEN>, const LEN: usize> BitSize<LEN> for BareBox<T>

source§

impl<const LEN: usize> BitSize<LEN> for EgcNonul<LEN>

source§

impl<const LEN: usize> BitSize<LEN> for StringNonul<LEN>

source§

impl<const RMIN: i8, const RMAX: i8> BitSize<8> for NonRangeI8<RMIN, RMAX>

source§

impl<const RMIN: i8, const RMAX: i8> BitSize<8> for RangeI8<RMIN, RMAX>

source§

impl<const RMIN: i16, const RMAX: i16> BitSize<16> for NonRangeI16<RMIN, RMAX>

source§

impl<const RMIN: i16, const RMAX: i16> BitSize<16> for RangeI16<RMIN, RMAX>

source§

impl<const RMIN: i32, const RMAX: i32> BitSize<32> for NonRangeI32<RMIN, RMAX>

source§

impl<const RMIN: i32, const RMAX: i32> BitSize<32> for RangeI32<RMIN, RMAX>

source§

impl<const RMIN: i64, const RMAX: i64> BitSize<64> for NonRangeI64<RMIN, RMAX>

source§

impl<const RMIN: i64, const RMAX: i64> BitSize<64> for RangeI64<RMIN, RMAX>

source§

impl<const RMIN: i128, const RMAX: i128> BitSize<128> for NonRangeI128<RMIN, RMAX>

source§

impl<const RMIN: i128, const RMAX: i128> BitSize<128> for RangeI128<RMIN, RMAX>

source§

impl<const RMIN: isize, const RMAX: isize> BitSize<8> for NonRangeIsize<RMIN, RMAX>

source§

impl<const RMIN: isize, const RMAX: isize> BitSize<8> for RangeIsize<RMIN, RMAX>

source§

impl<const RMIN: u8, const RMAX: u8> BitSize<8> for NonRangeU8<RMIN, RMAX>

source§

impl<const RMIN: u8, const RMAX: u8> BitSize<8> for RangeU8<RMIN, RMAX>

source§

impl<const RMIN: u16, const RMAX: u16> BitSize<16> for NonRangeU16<RMIN, RMAX>

source§

impl<const RMIN: u16, const RMAX: u16> BitSize<16> for RangeU16<RMIN, RMAX>

source§

impl<const RMIN: u32, const RMAX: u32> BitSize<32> for NonRangeU32<RMIN, RMAX>

source§

impl<const RMIN: u32, const RMAX: u32> BitSize<32> for RangeU32<RMIN, RMAX>

source§

impl<const RMIN: u64, const RMAX: u64> BitSize<64> for NonRangeU64<RMIN, RMAX>

source§

impl<const RMIN: u64, const RMAX: u64> BitSize<64> for RangeU64<RMIN, RMAX>

source§

impl<const RMIN: u128, const RMAX: u128> BitSize<128> for NonRangeU128<RMIN, RMAX>

source§

impl<const RMIN: u128, const RMAX: u128> BitSize<128> for RangeU128<RMIN, RMAX>

source§

impl<const RMIN: usize, const RMAX: usize> BitSize<8> for NonRangeUsize<RMIN, RMAX>

source§

impl<const RMIN: usize, const RMAX: usize> BitSize<8> for RangeUsize<RMIN, RMAX>

source§

impl<const V: i8> BitSize<8> for NonSpecificI8<V>

source§

impl<const V: i16> BitSize<16> for NonSpecificI16<V>

source§

impl<const V: i32> BitSize<32> for NonSpecificI32<V>

source§

impl<const V: i64> BitSize<64> for NonSpecificI64<V>

source§

impl<const V: i128> BitSize<128> for NonSpecificI128<V>

source§

impl<const V: isize> BitSize<32> for NonSpecificIsize<V>

source§

impl<const V: u8> BitSize<8> for NonSpecificU8<V>

source§

impl<const V: u16> BitSize<16> for NonSpecificU16<V>

source§

impl<const V: u32> BitSize<32> for NonSpecificU32<V>

source§

impl<const V: u64> BitSize<64> for NonSpecificU64<V>

source§

impl<const V: u128> BitSize<128> for NonSpecificU128<V>

source§

impl<const V: usize> BitSize<32> for NonSpecificUsize<V>