#![warn(missing_docs)]
#[derive(Debug)]
#[non_exhaustive]
pub enum Error {
#[cfg(target_os = "linux")]
SecretServiceError(secret_service::Error),
#[cfg(target_os = "windows")]
DPAPIError(&'static str),
PasswordHashError(pbkdf2::password_hash::errors::Error),
IOError(std::io::Error),
SQLError(rusqlite::Error),
BinaryError(nom::error::Error<Vec<u8>>),
}
impl From<pbkdf2::password_hash::errors::Error> for Error {
fn from(err: pbkdf2::password_hash::errors::Error) -> Self {
Error::PasswordHashError(err)
}
}
#[cfg(target_os = "linux")]
impl From<secret_service::Error> for Error {
fn from(err: secret_service::Error) -> Self {
Error::SecretServiceError(err)
}
}
impl From<std::io::Error> for Error {
fn from(err: std::io::Error) -> Self {
Error::IOError(err)
}
}
impl From<rusqlite::Error> for Error {
fn from(err: rusqlite::Error) -> Self {
Error::SQLError(err)
}
}
impl From<nom::error::Error<&[u8]>> for Error {
fn from(err: nom::error::Error<&[u8]>) -> Self {
Error::BinaryError(nom::error::Error {
input: err.input.to_vec(),
code: err.code,
})
}
}