use askama_axum::Template; use axum::{ async_trait, extract::FromRequestParts, http::{request::Parts, HeaderMap, StatusCode}, }; #[derive(Template)] #[template(path = "cps.html")] pub struct CpsTemplate; pub struct ExtractHxRequest(bool); #[async_trait] impl FromRequestParts for ExtractHxRequest where S: Send + Sync, { type Rejection = (StatusCode, &'static str); async fn from_request_parts(parts: &mut Parts, _state: &S) -> Result { if parts.headers.get("HX-Request").is_some() { Ok(ExtractHxRequest(true)) } else { Ok(ExtractHxRequest(false)) } } } pub async fn cps(headers: HeaderMap, hx_request: ExtractHxRequest) -> CpsTemplate { println!("{:#?}", headers); println!("{:#?}", hx_request.0); CpsTemplate }