feat: integrate thiserror
This commit is contained in:
parent
677fd19bec
commit
5ced11c40d
2 changed files with 15 additions and 4 deletions
|
|
@ -1,12 +1,15 @@
|
|||
use minisql::{operation::Operation, schema::TableSchema};
|
||||
use nom::{branch::alt, multi::many0, IResult};
|
||||
use thiserror::Error;
|
||||
|
||||
use crate::{parsing::{create::parse_create, delete::parse_delete, index::parse_create_index, insert::parse_insert, select::parse_select}, validation::{validate_operation, ValidationError}};
|
||||
|
||||
#[derive(Debug)]
|
||||
#[derive(Debug, Error)]
|
||||
pub enum Error {
|
||||
#[error("parsing error: {0}")]
|
||||
ParsingError(String),
|
||||
ValidationError(ValidationError)
|
||||
#[error("validation error: {0}")]
|
||||
ValidationError(#[from] ValidationError)
|
||||
}
|
||||
|
||||
pub fn parse_statement<'a>(input: &'a str) -> IResult<&str, Operation> {
|
||||
|
|
@ -31,7 +34,7 @@ pub fn parse_and_validate(query: String, db_metadata: &Vec<(String, &TableSchema
|
|||
Error::ParsingError(err.to_string())
|
||||
})?;
|
||||
|
||||
validate_operation(&op, db_metadata).map_err(|err| Error::ValidationError(err))?;
|
||||
validate_operation(&op, db_metadata)?;
|
||||
Ok(op)
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue