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
sourceimpl<'a, T, F, E> SequenceIterator<'a, T, F, E> where
F: ASN1Parser,
impl<'a, T, F, E> SequenceIterator<'a, T, F, E> where
F: ASN1Parser,
Trait Implementations
Auto Trait Implementations
impl<'a, T, F, E> RefUnwindSafe for SequenceIterator<'a, T, F, E> where
E: RefUnwindSafe,
F: RefUnwindSafe,
T: RefUnwindSafe,
impl<'a, T, F, E> Send for SequenceIterator<'a, T, F, E> where
E: Send,
F: Send,
T: Send,
impl<'a, T, F, E> Sync for SequenceIterator<'a, T, F, E> where
E: Sync,
F: Sync,
T: Sync,
impl<'a, T, F, E> Unpin for SequenceIterator<'a, T, F, E> where
E: Unpin,
F: Unpin,
T: Unpin,
impl<'a, T, F, E> UnwindSafe for SequenceIterator<'a, T, F, E> where
E: UnwindSafe,
F: UnwindSafe,
T: UnwindSafe,
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