diff options
Diffstat (limited to 'crates/tt')
-rw-r--r-- | crates/tt/src/lib.rs | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/crates/tt/src/lib.rs b/crates/tt/src/lib.rs index 20c3f5eab..7c796f564 100644 --- a/crates/tt/src/lib.rs +++ b/crates/tt/src/lib.rs | |||
@@ -240,6 +240,17 @@ pub enum ExpansionError { | |||
240 | ExpansionError(String), | 240 | ExpansionError(String), |
241 | } | 241 | } |
242 | 242 | ||
243 | impl fmt::Display for ExpansionError { | ||
244 | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { | ||
245 | match self { | ||
246 | ExpansionError::IOError(e) => write!(f, "I/O error: {}", e), | ||
247 | ExpansionError::JsonError(e) => write!(f, "JSON decoding error: {}", e), | ||
248 | ExpansionError::Unknown(e) => write!(f, "{}", e), | ||
249 | ExpansionError::ExpansionError(e) => write!(f, "proc macro returned error: {}", e), | ||
250 | } | ||
251 | } | ||
252 | } | ||
253 | |||
243 | pub trait TokenExpander: Debug + Send + Sync + RefUnwindSafe { | 254 | pub trait TokenExpander: Debug + Send + Sync + RefUnwindSafe { |
244 | fn expand(&self, subtree: &Subtree, attrs: Option<&Subtree>) | 255 | fn expand(&self, subtree: &Subtree, attrs: Option<&Subtree>) |
245 | -> Result<Subtree, ExpansionError>; | 256 | -> Result<Subtree, ExpansionError>; |