use std::{fmt, io};
use toml_edit::TomlError;
#[derive(Debug)]
pub enum CargoError {
Io,
Parsing,
NoWorkspace,
NoDependencies,
}
impl fmt::Display for CargoError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(
f,
"{}",
match self {
Self::Io => "General I/O error",
Self::Parsing => "Parsing error",
Self::NoWorkspace => "Selected crate root is not a workspace!",
Self::NoDependencies => "No dependencies found!",
}
)
}
}
impl From<io::Error> for CargoError {
fn from(_: io::Error) -> Self {
Self::Io
}
}
impl From<TomlError> for CargoError {
fn from(_: TomlError) -> Self {
Self::Parsing
}
}