actix-elastic 1.0.7

elasticsearch 7.x actix actor
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>;