pub struct BitString<'a> { /* private fields */ }Expand description
ASN.1 BIT STRING type.
This type contains a sequence of any number of bits, modeled internally as a sequence of bytes with a known number of “unused bits”.
Implementations
sourceimpl<'a> BitString<'a>
impl<'a> BitString<'a>
sourcepub const MAX_UNUSED_BITS: u8 = 7u8
pub const MAX_UNUSED_BITS: u8 = 7u8
Maximum number of unused bits allowed.
sourcepub fn new(unused_bits: u8, bytes: &'a [u8]) -> Result<Self>
pub fn new(unused_bits: u8, bytes: &'a [u8]) -> Result<Self>
Create a new ASN.1 BIT STRING from a byte slice.
Accepts an optional number of “unused bits” (0-7) which are omitted from the final octet. This number is 0 if the value is octet-aligned.
sourcepub fn from_bytes(bytes: &'a [u8]) -> Result<Self>
pub fn from_bytes(bytes: &'a [u8]) -> Result<Self>
Create a new ASN.1 BIT STRING from the given bytes.
The “unused bits” are set to 0.
sourcepub fn unused_bits(&self) -> u8
pub fn unused_bits(&self) -> u8
Get the number of unused bits in this byte slice.
sourcepub fn has_unused_bits(&self) -> bool
pub fn has_unused_bits(&self) -> bool
Is the number of unused bits a value other than 0?
sourcepub fn byte_len(&self) -> Length
pub fn byte_len(&self) -> Length
Get the number of bytes/octets needed to represent this BIT STRING
when serialized in an octet-aligned manner.
sourcepub fn as_bytes(&self) -> Option<&'a [u8]>
pub fn as_bytes(&self) -> Option<&'a [u8]>
Borrow the inner byte slice.
Returns None if the number of unused bits is not equal to zero,
i.e. if the BIT STRING is not octet aligned.
Use BitString::raw_bytes to obtain access to the raw value
regardless of the presence of unused bits.
sourcepub fn raw_bytes(&self) -> &'a [u8]
pub fn raw_bytes(&self) -> &'a [u8]
Borrow the raw bytes of this BIT STRING.
Note that the byte string may contain extra unused bits in the final
octet. If the number of unused bits is expected to be 0, the
BitString::as_bytes function can be used instead.
sourcepub fn bits(self) -> BitStringIter<'a>ⓘNotable traits for BitStringIter<'a>impl<'a> Iterator for BitStringIter<'a> type Item = bool;
pub fn bits(self) -> BitStringIter<'a>ⓘNotable traits for BitStringIter<'a>impl<'a> Iterator for BitStringIter<'a> type Item = bool;
Iterator over the bits of this BIT STRING.
Trait Implementations
sourceimpl<'a> DecodeValue<'a> for BitString<'a>
impl<'a> DecodeValue<'a> for BitString<'a>
sourceimpl EncodeValue for BitString<'_>
impl EncodeValue for BitString<'_>
sourceimpl<'a> Ord for BitString<'a>
impl<'a> Ord for BitString<'a>
sourceimpl<'a> PartialOrd<BitString<'a>> for BitString<'a>
impl<'a> PartialOrd<BitString<'a>> for BitString<'a>
sourcefn partial_cmp(&self, other: &BitString<'a>) -> Option<Ordering>
fn partial_cmp(&self, other: &BitString<'a>) -> Option<Ordering>
This method returns an ordering between self and other values if one exists. Read more
1.0.0 · sourcefn lt(&self, other: &Rhs) -> bool
fn lt(&self, other: &Rhs) -> bool
This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · sourcefn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for self and other) and is used by the <=
operator. Read more
impl<'a> Copy for BitString<'a>
impl<'a> Eq for BitString<'a>
impl<'a> StructuralEq for BitString<'a>
impl<'a> StructuralPartialEq for BitString<'a>
Auto Trait Implementations
impl<'a> RefUnwindSafe for BitString<'a>
impl<'a> Send for BitString<'a>
impl<'a> Sync for BitString<'a>
impl<'a> Unpin for BitString<'a>
impl<'a> UnwindSafe for BitString<'a>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more