Skip to main content

gitv_tui/
errors.rs

1use thiserror::Error;
2use tokio::sync::mpsc::error::SendError;
3
4#[derive(Debug, Error)]
5pub enum AppError {
6    #[error("not implemented")]
7    NotImplemented,
8    #[error(transparent)]
9    Octocrab(#[from] octocrab::Error),
10    #[error(transparent)]
11    Keyring(#[from] keyring::Error),
12    #[error(transparent)]
13    Io(#[from] std::io::Error),
14    #[error(transparent)]
15    Join(#[from] tokio::task::JoinError),
16    #[error(transparent)]
17    Inquire(#[from] inquire::error::InquireError),
18    #[error("error sending message on channel")]
19    TokioMpsc,
20    #[error(transparent)]
21    InitLoggingError(#[from] tracing_subscriber::util::TryInitError),
22    #[error("error setting global {0}")]
23    ErrorSettingGlobal(&'static str),
24    #[error(transparent)]
25    Other(#[from] anyhow::Error),
26}
27
28impl<T> From<SendError<T>> for AppError {
29    fn from(_: SendError<T>) -> Self {
30        AppError::TokioMpsc
31    }
32}
33
34pub type Result<T, E = AppError> = std::result::Result<T, E>;