handlebars_iron/
source.rs

1use handlebars::{Handlebars, TemplateError, TemplateFileError};
2use std::error::Error;
3use std::fmt;
4
5#[derive(Debug)]
6pub struct SourceError {
7    pub cause: Box<dyn Error + Send>,
8}
9
10impl fmt::Display for SourceError {
11    fn fmt(&self, f: &mut fmt::Formatter) -> Result<(), fmt::Error> {
12        fmt::Display::fmt(&*self.cause, f)
13    }
14}
15
16impl Error for SourceError {
17    fn source(&self) -> Option<&(dyn Error + 'static)> {
18        self.cause.source()
19    }
20}
21
22impl From<TemplateError> for SourceError {
23    fn from(err: TemplateError) -> SourceError {
24        SourceError {
25            cause: Box::new(err),
26        }
27    }
28}
29
30impl From<TemplateFileError> for SourceError {
31    fn from(err: TemplateFileError) -> SourceError {
32        SourceError {
33            cause: Box::new(err),
34        }
35    }
36}
37
38pub trait Source {
39    fn load(&self, reg: &mut Handlebars) -> Result<(), SourceError>;
40}