//! 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, application_state: ApplicationState, } pub struct ApplicationState { s0: alloc::sync::Arc, } pub async fn build_application_state() -> crate::ApplicationState { let v0 = app::constructor(); crate::ApplicationState { s0: v0 } } 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("/", 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(&server_state.application_state.s0).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<'a>( s_0: &'a alloc::sync::Arc, ) -> pavex::response::Response { let response = wrapping_0(s_0).await; response } async fn stage_1<'a>( s_0: &'a alloc::sync::Arc, ) -> pavex::response::Response { let response = handler(s_0).await; response } async fn wrapping_0( v0: &alloc::sync::Arc, ) -> pavex::response::Response { let v1 = crate::route_0::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 handler(v0: &alloc::sync::Arc) -> pavex::response::Response { let v1 = app::handler(v0); ::into_response(v1) } struct Next0<'a, T> where T: std::future::Future, { s_0: &'a alloc::sync::Arc, next: fn(&'a alloc::sync::Arc) -> 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) } } } 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 = 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 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) } } }