use anyhow;
use thiserror;
#[derive(Debug, thiserror::Error)]
pub enum ErrorKind {
#[error("TelegramNetworkError: {message:?}")]
NetworkError { message: Box<str> },
#[error(
"TelegramRetryAfter: {message:?} ({retry_after:?} seconds) (see {url:?} for more info)"
)]
RetryAfter {
url: &'static str,
message: Box<str>,
retry_after: i64,
},
#[error(
"TelegramMigrateToChat: {message:?} (migrate to chat id: {migrate_to_chat_id:?}, see \
{url:?} for more info)"
)]
MigrateToChat {
url: &'static str, message: Box<str>,
migrate_to_chat_id: i64,
},
#[error("TelegramBadRequest: {message:?}")]
BadRequest { message: Box<str> },
#[error("TelegramNotFound: {message:?}")]
NotFound { message: Box<str> },
#[error("TelegramConflictError: {message:?}")]
ConflictError { message: Box<str> },
#[error("TelegramForbidden: {message:?}")]
Forbidden { message: Box<str> },
#[error("TelegramUnauthorized: {message:?}")]
Unauthorized { message: Box<str> },
#[error("TelegramServerError: {message:?}")]
ServerError { message: Box<str> },
#[error("TelegramRestartingTelegram: {message:?}")]
RestartingTelegram { message: Box<str> },
#[error("TelegramTooLarge: {message:?} (see {url:?} for more info)")]
EntityTooLarge {
url: &'static str, message: Box<str>,
},
#[error(transparent)]
UnknownError(#[from] anyhow::Error),
}