handlebars_iron/
source.rs1use 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}