sqlite_simple_tokenizer/
error.rs

1use crate::tokenizer::RegisterTokenizerError;
2use std::fmt::Debug;
3
4#[derive(Debug)]
5pub enum Error {
6    RegisterTokenizerFailure(RegisterTokenizerError),
7    SimpleQueryInputTypeIncorrect(String),
8    Utf8Error(std::str::Utf8Error),
9    RusqliteError(rusqlite::Error),
10}
11
12impl From<RegisterTokenizerError> for Error {
13    fn from(value: RegisterTokenizerError) -> Self {
14        Self::RegisterTokenizerFailure(value)
15    }
16}
17
18impl From<std::str::Utf8Error> for Error {
19    fn from(value: std::str::Utf8Error) -> Self {
20        Self::Utf8Error(value)
21    }
22}
23
24impl From<rusqlite::Error> for Error {
25    fn from(value: rusqlite::Error) -> Self {
26        Self::RusqliteError(value)
27    }
28}
29
30impl std::fmt::Display for Error {
31    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
32        match self {
33            Error::RegisterTokenizerFailure(err) => std::fmt::Display::fmt(&err, f),
34            Error::SimpleQueryInputTypeIncorrect(ty) => {
35                write!(f, "input data must be text, got {ty}")
36            }
37            Error::Utf8Error(err) => std::fmt::Display::fmt(&err, f),
38            Error::RusqliteError(err) => std::fmt::Display::fmt(&err, f),
39        }
40    }
41}
42
43impl std::error::Error for Error {}