#[ derive( Debug ) ]
pub enum Error
{
Render( String ),
MissingParameters( Vec< String > ),
Fs( std ::io ::Error ),
InvalidTemplate( String ),
}
impl core ::fmt ::Display for Error
{
fn fmt( &self, f: &mut core ::fmt ::Formatter< '_ > ) -> core ::fmt ::Result
{
match self
{
Error ::Render( msg ) => write!( f, "Template rendering failed: {msg}" ),
Error ::MissingParameters( params ) =>
write!( f, "Missing mandatory parameters: {params:?}" ),
Error ::Fs( err ) => write!( f, "File system error: {err}" ),
Error ::InvalidTemplate( msg ) => write!( f, "Invalid template: {msg}" ),
}
}
}
impl core ::error ::Error for Error
{
fn source( &self ) -> Option< &( dyn core ::error ::Error + 'static ) >
{
match self
{
Error ::Fs( err ) => Some( err ),
_ => None,
}
}
}
impl From< std ::io ::Error > for Error
{
fn from( err: std ::io ::Error ) -> Self
{
Error ::Fs( err )
}
}
#[cfg(feature = "renderer")]
impl From< handlebars ::RenderError > for Error
{
fn from( err: handlebars ::RenderError ) -> Self
{
Error ::Render( err.to_string() )
}
}
#[cfg(feature = "renderer")]
impl From< handlebars ::TemplateError > for Error
{
fn from( err: handlebars ::TemplateError ) -> Self
{
Error ::Render( err.to_string() )
}
}