3 Commits
1.1.1 ... 1.2.0

5 changed files with 22 additions and 13 deletions

View File

@ -42,8 +42,13 @@ impl AppBuilder {
Self::default()
}
pub fn routes(mut self, routes: &[Router]) -> Self {
self.router = routes.iter().cloned().fold(self.router, Router::merge);
pub fn route(mut self, route: Router) -> Self {
self.router = self.router.merge(route);
self
}
pub fn routes(mut self, routes: impl IntoIterator<Item = Router>) -> Self {
self.router = routes.into_iter().fold(self.router, Router::merge);
self
}
@ -147,7 +152,7 @@ mod tests {
let handler = tokio::spawn(async {
AppBuilder::new()
.socket((Ipv4Addr::LOCALHOST, 8080))
.routes(&[Router::new()])
.routes([Router::new()])
.fallback(|| async { "Fallback" })
.cors(CorsLayer::new())
.normalize_path(true)

View File

@ -21,7 +21,7 @@
#[cfg(feature = "axum")]
macro_rules! router {
($body:expr) => {
pub(crate) fn router() -> axum::Router<()> {
pub(crate) fn router() -> axum::Router {
$body
}
};
@ -104,6 +104,6 @@ mod tests {
#[test]
fn test_join_routes() {
let _router: Router<()> = join_routes![Router::new(), Router::new()];
let _router: Router = join_routes![Router::new(), Router::new()];
}
}

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