Implement std::error::Error for ParserError

This commit is contained in:
Nikhil Benesch 2019-03-14 13:50:11 -04:00
parent 4f944dd4aa
commit 373a9265a2
No known key found for this signature in database
GPG key ID: F7386C5DEADABA7F

View file

@ -20,6 +20,7 @@ use super::dialect::keywords;
use super::dialect::Dialect;
use super::sqlast::*;
use super::sqltokenizer::*;
use std::error::Error;
#[derive(Debug, Clone, PartialEq)]
pub enum ParserError {
@ -47,6 +48,21 @@ impl From<TokenizerError> for ParserError {
}
}
impl std::fmt::Display for ParserError {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
write!(
f,
"sql parser error: {}",
match self {
ParserError::TokenizerError(s) => s,
ParserError::ParserError(s) => s,
}
)
}
}
impl Error for ParserError {}
/// SQL Parser
pub struct Parser {
tokens: Vec<Token>,