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
30
use actix::MailboxError;
use elasticsearch::Error as ElasticError;
use serde_json::error::Error as SerializeJsonError;
use thiserror::Error as ThisError;
use url::ParseError as UrlParseError;

use crate::response::ItemError;

use core::fmt::Error as SerializeError;
use std::io::Error as IoError;

#[derive(ThisError, Debug)]
pub enum Error {
    #[error("Io Error: `{0:?}`")]
    IoError(#[from] IoError),
    #[error("Elastic Error: `{0:?}`")]
    ElasticError(#[from] ElasticError),
    #[error("Url Parse Error: `{0:?}`")]
    UrlParseError(#[from] UrlParseError),
    #[error("Serialize Error: `{0:?}`")]
    SerializeError(#[from] SerializeError),
    #[error("Serialize Json Error: `{0:?}`")]
    SerializeJsonError(#[from] SerializeJsonError),
    #[error("Mailbox Error: `{0:?}`")]
    MailboxError(#[from] MailboxError),
    #[error("Elasitc Bulk Item Error: `{0:?}`")]
    BulkItemError(#[from] ItemError),
}

pub type Result<T> = std::result::Result<T, Error>;