From cdc8f5e463a4ecd1fea8da5d80e14d15590cd7cd Mon Sep 17 00:00:00 2001 From: Martin Berg Alstad Date: Thu, 27 Jun 2024 11:49:41 +0200 Subject: [PATCH] Moved IntoResult trait to own file outside feature --- src/lib.rs | 1 + src/nom/util.rs | 14 ++++++-------- src/traits.rs | 5 +++++ 3 files changed, 12 insertions(+), 8 deletions(-) create mode 100644 src/traits.rs diff --git a/src/lib.rs b/src/lib.rs index 8711057..291eae0 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -4,6 +4,7 @@ pub mod axum; pub mod io; pub mod nom; pub mod serde; +mod traits; pub mod vector; #[cfg(feature = "derive")] diff --git a/src/nom/util.rs b/src/nom/util.rs index ea824a2..d368d9d 100644 --- a/src/nom/util.rs +++ b/src/nom/util.rs @@ -1,11 +1,8 @@ #[cfg(feature = "nom")] -use nom::{error::Error, IResult}; - -#[cfg(feature = "nom")] -pub trait IntoResult { - type Error; - fn into_result(self) -> Result; -} +use { + crate::traits::IntoResult, + nom::{error::Error, IResult}, +}; #[cfg(feature = "nom")] impl IntoResult for IResult { @@ -17,9 +14,10 @@ impl IntoResult for IResult { #[cfg(all(test, feature = "nom"))] mod tests { - use super::*; use nom::character::complete::char as c; + use super::*; + fn parse_char(input: &str) -> IResult<&str, char> { c('A')(input) } diff --git a/src/traits.rs b/src/traits.rs new file mode 100644 index 0000000..7f7cf38 --- /dev/null +++ b/src/traits.rs @@ -0,0 +1,5 @@ +/// Converts a type T into a Result +pub trait IntoResult { + type Error; + fn into_result(self) -> Result; +}