pub struct BitString<'a, const DER: bool = true> { /* private fields */ }Expand description
The ASN.1 BIT STRING.
Represented as:
(number_of_unused_bits_in_final_octet, payload_octets).
Implementations§
Source§impl<'a, const DER: bool> BitString<'a, DER>
impl<'a, const DER: bool> BitString<'a, DER>
Sourcepub exec fn new(unused: u8, bits: &'a [u8]) -> bs : Self
pub exec fn new(unused: u8, bits: &'a [u8]) -> bs : Self
requires
unused <= 7,bits.len() == 0 ==> unused == 0,DER ==> (bits.len() > 0 ==> bits@.last().trailing_zeros() >= unused),ensures(bs.deep_view()
== BitStringSpec {
unused,
bits: bits.deep_view(),
}),Trait Implementations§
Source§impl<'a> DerOrd<BitString<'a>> for BitStringFmt<true>
impl<'a> DerOrd<BitString<'a>> for BitStringFmt<true>
Source§proof fn lemma_der_serialize_len(&self, value: BitStringSpec)
proof fn lemma_der_serialize_len(&self, value: BitStringSpec)
Source§open spec fn der_remaining(
&self,
value: BitStringSpec,
state: PairDerState<bool, BytesDerState>,
) -> Seq<u8>
open spec fn der_remaining( &self, value: BitStringSpec, state: PairDerState<bool, BytesDerState>, ) -> Seq<u8>
{
<Pair<
U8,
Tail,
> as DerOrd<
(u8, &'a [u8]),
>>::der_remaining(&Pair(U8, Tail), (value.unused, value.bits), state)
}Source§open spec fn der_state_valid(
&self,
value: BitStringSpec,
state: PairDerState<bool, BytesDerState>,
) -> bool
open spec fn der_state_valid( &self, value: BitStringSpec, state: PairDerState<bool, BytesDerState>, ) -> bool
{
<Pair<
U8,
Tail,
> as DerOrd<
(u8, &'a [u8]),
>>::der_state_valid(&Pair(U8, Tail), (value.unused, value.bits), state)
}Source§exec fn der_start(
&self,
b: &BitString<'a, true>,
) -> state : PairDerState<bool, BytesDerState>
exec fn der_start( &self, b: &BitString<'a, true>, ) -> state : PairDerState<bool, BytesDerState>
Source§exec fn der_next(
&self,
b: &BitString<'a, true>,
state: &mut PairDerState<bool, BytesDerState>,
) -> next : Option<u8>
exec fn der_next( &self, b: &BitString<'a, true>, state: &mut PairDerState<bool, BytesDerState>, ) -> next : Option<u8>
Source§impl<'i, Output: OutputBuf, const DER: bool> Serializer<Output, BitString<'i, DER>> for BitStringFmt<DER>
impl<'i, Output: OutputBuf, const DER: bool> Serializer<Output, BitString<'i, DER>> for BitStringFmt<DER>
Source§exec fn serialize_into(&self, v: &BitString<'i, DER>, obuf: &mut Output)
exec fn serialize_into(&self, v: &BitString<'i, DER>, obuf: &mut Output)
Auto Trait Implementations§
impl<'a, const DER: bool> Freeze for BitString<'a, DER>
impl<'a, const DER: bool> RefUnwindSafe for BitString<'a, DER>
impl<'a, const DER: bool> Send for BitString<'a, DER>
impl<'a, const DER: bool> Sync for BitString<'a, DER>
impl<'a, const DER: bool> Unpin for BitString<'a, DER>
impl<'a, const DER: bool> UnsafeUnpin for BitString<'a, DER>
impl<'a, const DER: bool> UnwindSafe for BitString<'a, DER>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more