1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
use diesel::{r2d2::PoolError, result::Error as DieselError};
use tantivy::{query::QueryParserError, TantivyError};
use thiserror::*;

#[derive(Debug, Error)]
pub enum ChatRecordError {
    #[error(transparent)]
    DatabaseError(#[from] PoolError),
    #[error(transparent)]
    DieselError(#[from] DieselError),
    #[error("{0:?}")]
    TantivyError(TantivyError),
    #[error("{0:?}")]
    TantivyQueryError(QueryParserError),
    #[error(transparent)]
    ContextedError(#[from] anyhow::Error),
}

impl From<TantivyError> for ChatRecordError {
    fn from(src: TantivyError) -> Self {
        Self::TantivyError(src)
    }
}

impl From<QueryParserError> for ChatRecordError {
    fn from(src: QueryParserError) -> Self {
        Self::TantivyQueryError(src)
    }
}