use core::fmt;
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct StripPrefixError(pub(crate) ());
impl fmt::Display for StripPrefixError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "prefix not found")
}
}
#[cfg(feature = "std")]
impl std::error::Error for StripPrefixError {}
#[derive(Clone, Debug, PartialEq, Eq)]
pub enum CheckedPathError {
InvalidFilename,
PathTraversalAttack,
UnexpectedPrefix,
UnexpectedRoot,
}
impl fmt::Display for CheckedPathError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
Self::InvalidFilename => write!(f, "path contains invalid filename"),
Self::PathTraversalAttack => write!(f, "path attempts to escape original path"),
Self::UnexpectedPrefix => write!(f, "path contains unexpected prefix"),
Self::UnexpectedRoot => write!(f, "path contains unexpected root"),
}
}
}
#[cfg(feature = "std")]
impl std::error::Error for CheckedPathError {}