From f0b8052a529fad7170edd644ceb9e4c174677547 Mon Sep 17 00:00:00 2001 From: Paolo Barbolini Date: Sat, 22 Feb 2025 08:36:56 +0100 Subject: [PATCH] build(deps): upgrade nom to v8 (#1048) --- Cargo.lock | 13 +++++++++++-- Cargo.toml | 2 +- src/transport/smtp/response.rs | 22 +++++++++++++--------- 3 files changed, 25 insertions(+), 12 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4eb92cd..a520345 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -380,7 +380,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" dependencies = [ - "nom", + "nom 7.1.3", ] [[package]] @@ -1211,7 +1211,7 @@ dependencies = [ "maud", "mime", "native-tls", - "nom", + "nom 8.0.0", "percent-encoding", "pretty_assertions", "quoted_printable", @@ -1368,6 +1368,15 @@ dependencies = [ "minimal-lexical", ] +[[package]] +name = "nom" +version = "8.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df9761775871bdef83bee530e60050f7e54b1105350d6884eb0fb4f46c2f9405" +dependencies = [ + "memchr", +] + [[package]] name = "nu-ansi-term" version = "0.46.0" diff --git a/Cargo.toml b/Cargo.toml index 91e8f0e..91df067 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -40,7 +40,7 @@ serde = { version = "1", features = ["derive"], optional = true } serde_json = { version = "1", optional = true } # smtp-transport -nom = { version = "7", optional = true } +nom = { version = "8", optional = true } hostname = { version = "0.4", optional = true } # feature socket2 = { version = "0.5.1", optional = true } url = { version = "2.4", optional = true } diff --git a/src/transport/smtp/response.rs b/src/transport/smtp/response.rs index cf49d5c..14043a7 100644 --- a/src/transport/smtp/response.rs +++ b/src/transport/smtp/response.rs @@ -12,8 +12,8 @@ use nom::{ bytes::streaming::{tag, take_until}, combinator::{complete, map}, multi::many0, - sequence::{preceded, tuple}, - IResult, + sequence::preceded, + IResult, Parser, }; use crate::transport::smtp::{error, Error}; @@ -221,7 +221,8 @@ fn parse_severity(i: &str) -> IResult<&str, Severity> { map(tag("3"), |_| Severity::PositiveIntermediate), map(tag("4"), |_| Severity::TransientNegativeCompletion), map(tag("5"), |_| Severity::PermanentNegativeCompletion), - ))(i) + )) + .parse(i) } fn parse_category(i: &str) -> IResult<&str, Category> { @@ -232,7 +233,8 @@ fn parse_category(i: &str) -> IResult<&str, Category> { map(tag("3"), |_| Category::Unspecified3), map(tag("4"), |_| Category::Unspecified4), map(tag("5"), |_| Category::MailSystem), - ))(i) + )) + .parse(i) } fn parse_detail(i: &str) -> IResult<&str, Detail> { @@ -247,18 +249,20 @@ fn parse_detail(i: &str) -> IResult<&str, Detail> { map(tag("7"), |_| Detail::Seven), map(tag("8"), |_| Detail::Eight), map(tag("9"), |_| Detail::Nine), - ))(i) + )) + .parse(i) } pub(crate) fn parse_response(i: &str) -> IResult<&str, Response> { - let (i, lines) = many0(tuple(( + let (i, lines) = many0(( parse_code, preceded(tag("-"), take_until("\r\n")), tag("\r\n"), - )))(i)?; + )) + .parse(i)?; let (i, (last_code, last_line)) = - tuple((parse_code, preceded(tag(" "), take_until("\r\n"))))(i)?; - let (i, _) = complete(tag("\r\n"))(i)?; + (parse_code, preceded(tag(" "), take_until("\r\n"))).parse(i)?; + let (i, _) = complete(tag("\r\n")).parse(i)?; // Check that all codes are equal. if !lines.iter().all(|&(code, _, _)| code == last_code) {