use thiserror::Error;
#[derive(Debug, Error)]
pub enum Error {
#[error("config error: {0}")]
Config(String),
#[error("keyring error: {0}")]
Keyring(String),
#[error("device flow error: {0}")]
DeviceFlow(String),
#[error("github API error: {0}")]
GitHub(String),
#[error("browser error: {0}")]
Browser(String),
#[error("store token error: {message}")]
StoreToken {
message: String,
token: Box<crate::keyring::AccessToken>,
app: Box<crate::config::App>,
},
#[error("{0}")]
Other(String),
}
pub type Result<T> = std::result::Result<T, Error>;