zero4rs 2.0.0

zero4rs is a powerful, pragmatic, and extremely fast web framework for Rust
Documentation
use crate::prelude2::*;

pub async fn render_xml(request: HttpRequest) -> impl Responder {
    let xml_content = r#"
        <root>
            <name>John</name>
            <age>25</age>
        </root>
    "#;

    let _xslt_content = r#"
        <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
            <xsl:output method="xml" indent="yes"/>
            <xsl:template match="/">
                <result>
                    <xsl:value-of select="concat('Hello, ', /root/name, '!')"/>
                </result>
            </xsl:template>
        </xsl:stylesheet>
    "#;

    request.text(200, xml_content)
}

pub async fn render_shtml(request: HttpRequest) -> impl Responder {
    let uri = request.match_info().get("tail").unwrap();

    let mut query_string = request.query_string().to_owned();

    if !query_string.trim().is_empty() {
        query_string = format!("?{}", query_string);
    }

    log::info!("render_shtml: uri={}{}", uri, query_string);

    let xml_content = r#"
<root>
    <name>John</name>
    <age>25</age>
</root>
    "#;

    let _xslt_content = r#"
        <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
            <xsl:output method="xml" indent="yes"/>
            <xsl:template match="/">
                <result>
                    <xsl:value-of select="concat('Hello, ', /root/name, '!')"/>
                </result>
            </xsl:template>
        </xsl:stylesheet>
    "#;

    request.text(200, xml_content.trim())
}