rjango 0.1.1

A full-stack Rust backend framework inspired by Django
Documentation
use super::{Template, TemplateBackend, TemplateError};

#[derive(Debug, Clone, Default)]
pub struct DummyBackend {
    error: Option<TemplateError>,
}

impl DummyBackend {
    #[must_use]
    pub const fn new() -> Self {
        Self { error: None }
    }

    #[must_use]
    pub fn with_error(error: TemplateError) -> Self {
        Self { error: Some(error) }
    }

    fn maybe_error(&self) -> Result<(), TemplateError> {
        self.error.clone().map_or(Ok(()), Err)
    }
}

impl TemplateBackend for DummyBackend {
    fn from_string(&self, _template_string: &str) -> Result<Template, TemplateError> {
        self.maybe_error()?;
        Ok(Template::new("<dummy>", ""))
    }

    fn get_template(&self, template_name: &str) -> Result<Template, TemplateError> {
        self.maybe_error()?;
        Ok(Template::new(template_name, ""))
    }
}