gen-html 0.3.0

Generate HTML using Rust
Documentation
#[cfg(feature = "axum")]
#[cfg_attr(docsrs, doc(cfg(feature = "axum")))]
mod axum {
    use crate::{Escaped, Raw, Render, RenderFn};
    use axum::response::{Html, IntoResponse, Response};
    use std::fmt;

    impl<T: fmt::Display> IntoResponse for Escaped<T> {
        fn into_response(self) -> Response {
            self.render().into_response()
        }
    }

    impl<T: fmt::Display> IntoResponse for Raw<T> {
        fn into_response(self) -> Response {
            Html(self.0.to_string()).into_response()
        }
    }

    impl<F> IntoResponse for RenderFn<F>
    where
        F: Fn(&mut fmt::Formatter) -> fmt::Result,
    {
        fn into_response(self) -> Response {
            self.render().into_response()
        }
    }
}

#[cfg(feature = "actix-web")]
#[cfg_attr(docsrs, doc(cfg(feature = "actix-web")))]
mod actix_web {
    use crate::{Escaped, Raw, Render, RenderFn};
    use actix_web::{HttpRequest, HttpResponse, Responder, web::Html};
    use std::fmt;

    impl<T: fmt::Display> Responder for Escaped<T> {
        type Body = String;

        fn respond_to(self, req: &HttpRequest) -> HttpResponse<Self::Body> {
            self.render().respond_to(req)
        }
    }

    impl<T: fmt::Display> Responder for Raw<T> {
        type Body = String;

        fn respond_to(self, req: &HttpRequest) -> HttpResponse<Self::Body> {
            Html::new(self.0.to_string()).respond_to(req)
        }
    }

    impl<F> Responder for RenderFn<F>
    where
        F: Fn(&mut fmt::Formatter) -> fmt::Result,
    {
        type Body = String;

        fn respond_to(self, req: &HttpRequest) -> HttpResponse<Self::Body> {
            self.render().respond_to(req)
        }
    }
}