#[derive(Debug, thiserror::Error)]
#[non_exhaustive]
pub enum BobError {
#[error("{context}: {source}")]
Io {
context: &'static str,
#[source]
source: std::io::Error,
},
#[error("install child {stream} pipe was not captured")]
PipeNotCaptured {
stream: &'static str,
},
#[error("keychain access failed: {0}")]
Keychain(#[from] keyring::Error),
#[error("auth-state serialization failed: {0}")]
Serialize(#[from] serde_json::Error),
#[error("{0}")]
Invalid(String),
#[error("could not determine the application data directory")]
NoDataDir,
#[error(transparent)]
Stream(#[from] cli_stream::StreamError),
}