Macro der_parser::parse_der_sequence_defined
[−]
[src]
macro_rules! parse_der_sequence_defined { ($i:expr, $($args:tt)*) => { ... }; }
Parse a sequence of DER elements (folding version)
Unlike parse_der_sequence
, this function allows to specify the
list of expected types in the DER sequence.
Similar to parse_der_sequence_defined_m
, but uses
fold
internally.
Because of that, macros cannot be used as subparsers.
use der_parser::*; use nom::{IResult,Err,ErrorKind}; fn localparse_seq(i:&[u8]) -> IResult<&[u8],DerObject> { parse_der_sequence_defined!(i, parse_der_integer, parse_der_integer ) } let empty = &b""[..]; let bytes = [ 0x30, 0x0a, 0x02, 0x03, 0x01, 0x00, 0x01, 0x02, 0x03, 0x01, 0x00, 0x00, ]; let expected = DerObject::from_obj(DerObjectContent::Sequence(vec![ DerObject::from_int_slice(b"\x01\x00\x01"), DerObject::from_int_slice(b"\x01\x00\x00"), ])); assert_eq!(localparse_seq(&bytes), IResult::Done(empty, expected));