//! Do NOT edit this code. //! It was automatically generated by Pavex. //! All manual edits will be lost next time the code is generated. extern crate alloc; struct ServerState { router: pavex_matchit::Router, #[allow(dead_code)] application_state: ApplicationState, } pub struct ApplicationState {} pub async fn build_application_state() -> crate::ApplicationState { crate::ApplicationState {} } pub fn run( server_builder: pavex::server::Server, application_state: ApplicationState, ) -> pavex::server::ServerHandle { let server_state = std::sync::Arc::new(ServerState { router: build_router(), application_state, }); server_builder.serve(route_request, server_state) } fn build_router() -> pavex_matchit::Router { let mut router = pavex_matchit::Router::new(); router.insert("/home", 0u32).unwrap(); router } async fn route_request( request: http::Request, _connection_info: Option, server_state: std::sync::Arc, ) -> pavex::response::Response { let (request_head, request_body) = request.into_parts(); #[allow(unused)] let request_body = pavex::request::body::RawIncomingBody::from(request_body); let request_head: pavex::request::RequestHead = request_head.into(); let matched_route = match server_state.router.at(&request_head.target.path()) { Ok(m) => m, Err(_) => { let allowed_methods: pavex::router::AllowedMethods = pavex::router::MethodAllowList::from_iter( vec![], ) .into(); return route_1::entrypoint(&allowed_methods).await; } }; let route_id = matched_route.value; #[allow(unused)] let url_params: pavex::request::path::RawPathParams<'_, '_> = matched_route .params .into(); match route_id { 0u32 => { match &request_head.method { &pavex::http::Method::GET => route_0::entrypoint().await, _ => { let allowed_methods: pavex::router::AllowedMethods = pavex::router::MethodAllowList::from_iter([ pavex::http::Method::GET, ]) .into(); route_1::entrypoint(&allowed_methods).await } } } i => unreachable!("Unknown route id: {}", i), } } pub mod route_0 { pub async fn entrypoint() -> pavex::response::Response { let response = wrapping_0().await; response } async fn stage_1() -> pavex::response::Response { let response = wrapping_1().await; response } async fn stage_2<'a, 'b>( s_0: &'a app::C, s_1: &'b app::A, ) -> pavex::response::Response { let response = handler(s_0, s_1).await; response } async fn wrapping_0() -> pavex::response::Response { let v0 = crate::route_0::Next0 { next: stage_1, }; let v1 = pavex::middleware::Next::new(v0); let v2 = pavex::middleware::wrap_noop(v1).await; ::into_response(v2) } async fn wrapping_1() -> pavex::response::Response { let v0 = app::c(); let v1 = app::a(); let v2 = app::b(&v1, &v0); let v3 = crate::route_0::Next1 { s_0: &v0, s_1: &v1, next: stage_2, }; let v4 = pavex::middleware::Next::new(v3); let v5 = app::mw(v4, v2); ::into_response(v5) } async fn handler(v0: &app::C, v1: &app::A) -> pavex::response::Response { let v2 = app::handler(v1, v0); ::into_response(v2) } struct Next0 where T: std::future::Future, { next: fn() -> T, } impl std::future::IntoFuture for Next0 where T: std::future::Future, { type Output = pavex::response::Response; type IntoFuture = T; fn into_future(self) -> Self::IntoFuture { (self.next)() } } struct Next1<'a, 'b, T> where T: std::future::Future, { s_0: &'a app::C, s_1: &'b app::A, next: fn(&'a app::C, &'b app::A) -> T, } impl<'a, 'b, T> std::future::IntoFuture for Next1<'a, 'b, T> where T: std::future::Future, { type Output = pavex::response::Response; type IntoFuture = T; fn into_future(self) -> Self::IntoFuture { (self.next)(self.s_0, self.s_1) } } } pub mod route_1 { pub async fn entrypoint<'a>( s_0: &'a pavex::router::AllowedMethods, ) -> pavex::response::Response { let response = wrapping_0(s_0).await; response } async fn stage_1<'a>( s_0: &'a pavex::router::AllowedMethods, ) -> pavex::response::Response { let response = wrapping_1(s_0).await; response } async fn stage_2<'a>( s_0: &'a pavex::router::AllowedMethods, ) -> pavex::response::Response { let response = handler(s_0).await; response } async fn wrapping_0( v0: &pavex::router::AllowedMethods, ) -> pavex::response::Response { let v1 = crate::route_1::Next0 { s_0: v0, next: stage_1, }; let v2 = pavex::middleware::Next::new(v1); let v3 = pavex::middleware::wrap_noop(v2).await; ::into_response(v3) } async fn wrapping_1( v0: &pavex::router::AllowedMethods, ) -> pavex::response::Response { let v1 = app::c(); let v2 = app::a(); let v3 = app::b(&v2, &v1); let v4 = crate::route_1::Next1 { s_0: v0, next: stage_2, }; let v5 = pavex::middleware::Next::new(v4); let v6 = app::mw(v5, v3); ::into_response(v6) } async fn handler(v0: &pavex::router::AllowedMethods) -> pavex::response::Response { let v1 = pavex::router::default_fallback(v0).await; ::into_response(v1) } struct Next0<'a, T> where T: std::future::Future, { s_0: &'a pavex::router::AllowedMethods, next: fn(&'a pavex::router::AllowedMethods) -> T, } impl<'a, T> std::future::IntoFuture for Next0<'a, T> where T: std::future::Future, { type Output = pavex::response::Response; type IntoFuture = T; fn into_future(self) -> Self::IntoFuture { (self.next)(self.s_0) } } struct Next1<'a, T> where T: std::future::Future, { s_0: &'a pavex::router::AllowedMethods, next: fn(&'a pavex::router::AllowedMethods) -> T, } impl<'a, T> std::future::IntoFuture for Next1<'a, T> where T: std::future::Future, { type Output = pavex::response::Response; type IntoFuture = T; fn into_future(self) -> Self::IntoFuture { (self.next)(self.s_0) } } }