Struct asn1_rs::SequenceIterator
source · pub struct SequenceIterator<'a, T, F, E = Error>where
F: ASN1Parser,{ /* private fields */ }
Expand description
An Iterator over binary data, parsing elements of type T
This helps parsing SEQUENCE OF
items of type T
. The type of parser
(BER/DER) is specified using the generic parameter F
of this struct.
Note: the iterator must start on the sequence contents, not the sequence itself.
§Examples
use asn1_rs::{DerParser, Integer, SequenceIterator};
let data = &[0x30, 0x6, 0x2, 0x1, 0x1, 0x2, 0x1, 0x2];
for (idx, item) in SequenceIterator::<Integer, DerParser>::new(&data[2..]).enumerate() {
let item = item.unwrap(); // parsing could have failed
let i = item.as_u32().unwrap(); // integer can be negative, or too large to fit into u32
assert_eq!(i as usize, idx + 1);
}
Implementations§
Trait Implementations§
Auto Trait Implementations§
impl<'a, T, F, E> Freeze for SequenceIterator<'a, T, F, E>
impl<'a, T, F, E> RefUnwindSafe for SequenceIterator<'a, T, F, E>
impl<'a, T, F, E> Send for SequenceIterator<'a, T, F, E>
impl<'a, T, F, E> Sync for SequenceIterator<'a, T, F, E>
impl<'a, T, F, E> Unpin for SequenceIterator<'a, T, F, E>
impl<'a, T, F, E> UnwindSafe for SequenceIterator<'a, T, F, E>
Blanket Implementations§
source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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