| @@ -34,27 +34,19 @@ fn is_hex_digit_lc(b: u8) -> bool { · 33 unmodified lines |
| 34 | 34 | } |
| 35 | 35 | |
| 36 | 36 | pub(crate) fn parse(i: &[u8]) -> IResult<&[u8], Tag, Error> { |
| 37 | | − let (i, target) = parse_oneline_header(b"object")(i) |
| 38 | | − .map_err(Error::context("object <40 lowercase hex char>"))?; |
| 39 | | − // let (i, target) = terminated( |
| 40 | | − // preceded( |
| 41 | | − // tag(b"object "), |
| 42 | | − // take_while_m_n(40usize, 40, is_hex_digit_lc), |
| 43 | | − // ), |
| 44 | | − // tag(NL), |
| 45 | | − // )(i) |
| 46 | | − // .map_err(Error::context("object <40 lowercase hex char>"))?; |
| 37 | + let (i, target) = |
| 38 | + parse_oneline_header(i, b"object", take_while_m_n(40usize, 40, is_hex_digit_lc)) |
| 39 | + .map_err(Error::context("object <40 lowercase hex char>"))?; |
| 47 | 40 | |
| 48 | | − let (i, kind) = terminated(preceded(tag(b"type "), take_while1(is_alphabetic)), tag(NL))(i) |
| 41 | + let (i, kind) = parse_oneline_header(i, b"type", take_while1(is_alphabetic)) |
| 49 | 42 | .map_err(Error::context("type <object kind>"))?; |
| 50 | 43 | let kind = |
| 51 | 44 | crate::Kind::from_bytes(kind).map_err(|e| nom::Err::Error(Error::ParseKindError(e)))?; |
| 52 | 45 | |
| 53 | | − let (i, tag_version) = |
| 54 | | − terminated(preceded(tag(b"tag "), take_while1(|b| b != NL[0])), tag(NL))(i) |
| 55 | | − .map_err(Error::context("tag <version>"))?; |
| 46 | + let (i, tag_version) = parse_oneline_header(i, b"tag", take_while1(|b| b != NL[0])) |
| 47 | + .map_err(Error::context("tag <version>"))?; |
| 56 | 48 | |
| 57 | | − let (i, signature) = terminated(preceded(tag(b"tagger "), parse_signature), tag(NL))(i) |
| 49 | + let (i, signature) = parse_oneline_header(i, b"tagger", parse_signature) |
| 58 | 50 | .map_err(Error::context("tagger <signature>"))?; |
| 59 | 51 | let (i, (message, pgp_signature)) = all_consuming(parse_message)(i)?; |
| 60 | 52 | Ok(( |