use crate::{ByteSized, Mem};
#[doc = crate::_tags!(mem)]
#[doc = crate::_doc_meta!{location("sys/mem")}]
pub trait BitSized<const LEN: usize>: ByteSized {
const BIT_SIZE: usize = {
let min_byte_size = Mem::bytes_from_bits(LEN);
if min_byte_size > Self::BYTE_SIZE {
panic!["BitSized::MIN_BYTE_SIZE > ByteSized::BYTE_SIZE"];
}
LEN
};
const MIN_BYTE_SIZE: usize = {
let min_byte_size = Mem::bytes_from_bits(LEN);
if min_byte_size > Self::BYTE_SIZE {
panic!["BitSized::MIN_BYTE_SIZE > ByteSized::BYTE_SIZE"];
}
min_byte_size
};
#[must_use]
fn bit_size(&self) -> usize {
Self::BIT_SIZE
}
#[must_use]
fn min_byte_size(&self) -> usize {
Self::MIN_BYTE_SIZE
}
}