mirror of
https://github.com/meilisearch/MeiliSearch
synced 2025-07-04 20:37:15 +02:00
adds error handling and integration
This commit is contained in:
parent
83f50914ec
commit
3e031d8297
4 changed files with 57 additions and 44 deletions
|
@ -1,10 +1,13 @@
|
|||
use crate::serde::{DeserializerError, SerializerError};
|
||||
use serde_json::Error as SerdeJsonError;
|
||||
use pest::error::Error as PestError;
|
||||
use crate::filters::Rule;
|
||||
use std::{error, fmt, io};
|
||||
|
||||
pub use heed::Error as HeedError;
|
||||
pub use fst::Error as FstError;
|
||||
pub use bincode::Error as BincodeError;
|
||||
pub use fst::Error as FstError;
|
||||
pub use heed::Error as HeedError;
|
||||
pub use pest::error as pest_error;
|
||||
|
||||
pub type MResult<T> = Result<T, Error>;
|
||||
|
||||
|
@ -25,6 +28,7 @@ pub enum Error {
|
|||
Serializer(SerializerError),
|
||||
Deserializer(DeserializerError),
|
||||
UnsupportedOperation(UnsupportedOperation),
|
||||
FilterParseError(PestError<Rule>)
|
||||
}
|
||||
|
||||
impl From<io::Error> for Error {
|
||||
|
@ -42,11 +46,11 @@ impl From<PestError<Rule>> for Error {
|
|||
Rule::not => "NOT",
|
||||
Rule::string => "string",
|
||||
Rule::word => "word",
|
||||
Rule::greater => "field>value",
|
||||
Rule::less => "field<value",
|
||||
Rule::eq => "field:value",
|
||||
Rule::leq => "field<=value",
|
||||
Rule::geq => "field>=value",
|
||||
Rule::greater => "field > value",
|
||||
Rule::less => "field < value",
|
||||
Rule::eq => "field = value",
|
||||
Rule::leq => "field <= value",
|
||||
Rule::geq => "field >= value",
|
||||
Rule::key => "key",
|
||||
_ => "other",
|
||||
};
|
||||
|
@ -122,6 +126,7 @@ impl fmt::Display for Error {
|
|||
Serializer(e) => write!(f, "serializer error; {}", e),
|
||||
Deserializer(e) => write!(f, "deserializer error; {}", e),
|
||||
UnsupportedOperation(op) => write!(f, "unsupported operation; {}", op),
|
||||
FilterParseError(e) => write!(f, "error parsing filter; {}", e),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,12 +1,15 @@
|
|||
#[cfg(test)]
|
||||
#[macro_use]
|
||||
extern crate assert_matches;
|
||||
#[macro_use]
|
||||
extern crate pest_derive;
|
||||
|
||||
mod automaton;
|
||||
mod bucket_sort;
|
||||
mod database;
|
||||
mod distinct_map;
|
||||
mod error;
|
||||
mod filters;
|
||||
mod levenshtein;
|
||||
mod number;
|
||||
mod query_builder;
|
||||
|
@ -23,7 +26,8 @@ pub mod serde;
|
|||
pub mod store;
|
||||
|
||||
pub use self::database::{BoxUpdateFn, Database, MainT, UpdateT};
|
||||
pub use self::error::{Error, HeedError, FstError, MResult};
|
||||
pub use self::error::{Error, HeedError, FstError, MResult, pest_error};
|
||||
pub use self::filters::Filter;
|
||||
pub use self::number::{Number, ParseNumberError};
|
||||
pub use self::ranked_map::RankedMap;
|
||||
pub use self::raw_document::RawDocument;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue