From b187885e70af400d50e3200390306b9bd2109675 Mon Sep 17 00:00:00 2001 From: Paolo Barbolini Date: Mon, 2 Nov 2020 09:43:35 +0100 Subject: [PATCH] Upgrade to nom 6 --- Cargo.toml | 2 +- src/transport/smtp/client/async_connection.rs | 4 ++-- src/transport/smtp/client/connection.rs | 4 ++-- src/transport/smtp/error.rs | 8 ++++---- src/transport/smtp/response.rs | 5 ++++- 5 files changed, 13 insertions(+), 10 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index f1f200b..41ac37a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -36,7 +36,7 @@ serde = { version = "1", optional = true, features = ["derive"] } serde_json = { version = "1", optional = true } # smtp -nom = { version = "5", optional = true } +nom = { version = "6", default-features = false, features = ["alloc"], optional = true } r2d2 = { version = "0.8", optional = true } # feature hostname = { version = "0.3", optional = true } # feature diff --git a/src/transport/smtp/client/async_connection.rs b/src/transport/smtp/client/async_connection.rs index 311af54..6b42996 100644 --- a/src/transport/smtp/client/async_connection.rs +++ b/src/transport/smtp/client/async_connection.rs @@ -268,11 +268,11 @@ impl AsyncSmtpConnection { return Err(response.into()); } Err(nom::Err::Failure(e)) => { - return Err(Error::Parsing(e.1)); + return Err(Error::Parsing(e.code)); } Err(nom::Err::Incomplete(_)) => { /* read more */ } Err(nom::Err::Error(e)) => { - return Err(Error::Parsing(e.1)); + return Err(Error::Parsing(e.code)); } } } diff --git a/src/transport/smtp/client/connection.rs b/src/transport/smtp/client/connection.rs index 10b2b8d..38f6f90 100644 --- a/src/transport/smtp/client/connection.rs +++ b/src/transport/smtp/client/connection.rs @@ -253,11 +253,11 @@ impl SmtpConnection { return Err(response.into()); } Err(nom::Err::Failure(e)) => { - return Err(Error::Parsing(e.1)); + return Err(Error::Parsing(e.code)); } Err(nom::Err::Incomplete(_)) => { /* read more */ } Err(nom::Err::Error(e)) => { - return Err(Error::Parsing(e.1)); + return Err(Error::Parsing(e.code)); } } } diff --git a/src/transport/smtp/error.rs b/src/transport/smtp/error.rs index 9a723b7..256f76f 100644 --- a/src/transport/smtp/error.rs +++ b/src/transport/smtp/error.rs @@ -109,12 +109,12 @@ impl From for Error { } } -impl From> for Error { - fn from(err: nom::Err<(&str, nom::error::ErrorKind)>) -> Error { +impl From>> for Error { + fn from(err: nom::Err>) -> Error { Parsing(match err { nom::Err::Incomplete(_) => nom::error::ErrorKind::Complete, - nom::Err::Failure((_, k)) => k, - nom::Err::Error((_, k)) => k, + nom::Err::Failure(e) => e.code, + nom::Err::Error(e) => e.code, }) } } diff --git a/src/transport/smtp/response.rs b/src/transport/smtp/response.rs index bde6b49..40e18b3 100644 --- a/src/transport/smtp/response.rs +++ b/src/transport/smtp/response.rs @@ -238,7 +238,10 @@ pub(crate) fn parse_response(i: &str) -> IResult<&str, Response> { // Check that all codes are equal. if !lines.iter().all(|&(code, _, _)| code == last_code) { - return Err(nom::Err::Failure(("", nom::error::ErrorKind::Not))); + return Err(nom::Err::Failure(nom::error::Error::new( + "", + nom::error::ErrorKind::Not, + ))); } // Extract text from lines, and append last line.