Moved IntoResult trait to own file outside feature

This commit is contained in:
Martin Berg Alstad 2024-06-27 11:49:41 +02:00
parent aba28d1612
commit cdc8f5e463
3 changed files with 12 additions and 8 deletions

View File

@ -4,6 +4,7 @@ pub mod axum;
pub mod io;
pub mod nom;
pub mod serde;
mod traits;
pub mod vector;
#[cfg(feature = "derive")]

View File

@ -1,11 +1,8 @@
#[cfg(feature = "nom")]
use nom::{error::Error, IResult};
#[cfg(feature = "nom")]
pub trait IntoResult<T> {
type Error;
fn into_result(self) -> Result<T, Self::Error>;
}
use {
crate::traits::IntoResult,
nom::{error::Error, IResult},
};
#[cfg(feature = "nom")]
impl<T, R> IntoResult<T> for IResult<R, T> {
@ -17,9 +14,10 @@ impl<T, R> IntoResult<T> for IResult<R, T> {
#[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)
}

5
src/traits.rs Normal file
View File

@ -0,0 +1,5 @@
/// Converts a type T into a Result<T, E>
pub trait IntoResult<T> {
type Error;
fn into_result(self) -> Result<T, Self::Error>;
}