use crate::log::logger::LoggerError;
use crate::log::sink::SinkSpecifierError;
use log::SetLoggerError;
pub(crate) enum Status {
CantConstructSink = -7,
CantOpenSinkToFile = -6,
MissingFilePath = -5,
UnknownSinkType = -4,
SpecifierNotUtf8 = -3,
NoLogger = -2,
CantSetLogger = -1,
Success = 0,
}
impl From<SetLoggerError> for Status {
fn from(_err: SetLoggerError) -> Status {
Status::CantSetLogger
}
}
impl From<SinkSpecifierError> for Status {
fn from(err: SinkSpecifierError) -> Status {
match err {
SinkSpecifierError::UnknownSinkType { .. } => {
Status::UnknownSinkType
}
SinkSpecifierError::MissingFilePath { .. } => {
Status::MissingFilePath
}
SinkSpecifierError::CantMakeFile { .. } => {
Status::CantOpenSinkToFile
}
}
}
}
impl From<LoggerError> for Status {
fn from(err: LoggerError) -> Status {
match err {
LoggerError::NoLogger => Status::NoLogger,
LoggerError::ApplyLoggerFailed(err) => err.into(),
}
}
}