Skip to main content

sailfish_web/web_servers_support/
template.rs

1use sailfish::TemplateSimple;
2
3/// Wrapper struct for TemplateSimple that allows us to have custom error messages and a better api for using the web frameworks
4pub struct TemplateWrapper<T: TemplateSimple> {
5    pub(crate) template: T,
6    pub(crate) custom_error_message: Option<String>,
7}
8
9impl<T> From<T> for TemplateWrapper<T>
10    where
11        T: TemplateSimple,
12{
13    fn from(template: T) -> Self {
14        TemplateWrapper { template, custom_error_message: None }
15    }
16}
17
18impl<T: TemplateSimple> TemplateWrapper<T> {
19    /// Create an AxumTemplate from a TemplateSimple struct
20    pub fn from(template: T) -> Self {
21        Self {
22            template,
23            custom_error_message: None,
24        }
25    }
26
27    /// Specify a custom error message to be rendered when template.render_once() returns an RenderError
28    pub fn with_custom_error_message(mut self, message: String) -> Self {
29        self.custom_error_message = Some(message);
30        self
31    }
32}