Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/mbe/src/lib.rs')
| -rw-r--r-- | crates/mbe/src/lib.rs | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/crates/mbe/src/lib.rs b/crates/mbe/src/lib.rs index bc407e4171..61e032e0af 100644 --- a/crates/mbe/src/lib.rs +++ b/crates/mbe/src/lib.rs @@ -30,7 +30,7 @@ use crate::{ pub use ::parser::ParserEntryPoint; pub use tt::{Delimiter, DelimiterKind, Punct}; -#[derive(Debug, PartialEq, Eq)] +#[derive(Debug, PartialEq, Eq, Clone)] pub enum ParseError { UnexpectedToken(String), Expected(String), @@ -38,6 +38,17 @@ pub enum ParseError { RepetitionEmptyTokenTree, } +impl fmt::Display for ParseError { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + match self { + ParseError::UnexpectedToken(it) => f.write_str(it), + ParseError::Expected(it) => f.write_str(it), + ParseError::InvalidRepeat => f.write_str("invalid repeat"), + ParseError::RepetitionEmptyTokenTree => f.write_str("empty token tree in repetition"), + } + } +} + #[derive(Debug, PartialEq, Eq, Clone)] pub enum ExpandError { NoMatchingRule, |