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; +}