outdir_tempdir/
error.rs

1use std::fmt;
2use std::io;
3use std::path::PathBuf;
4
5/// Enum listing possible errors from outdir-tempdir.
6#[derive(Debug)]
7pub enum Error {
8    Io(io::Error),
9    ParentDirContains(PathBuf),
10    RootDirContains(PathBuf),
11    OutDirNotFound,
12    InvalidPath(PathBuf),
13}
14
15/// A specialized [`Result`] type for outdir-tempdir.
16pub type Result<T> = std::result::Result<T, Error>;
17
18impl From<io::Error> for Error {
19    fn from(error: io::Error) -> Self {
20        Error::Io(error)
21    }
22}
23
24impl fmt::Display for Error {
25    fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
26        use self::Error::*;
27
28        match self {
29            Io(e) => e.fmt(formatter),
30            ParentDirContains(p) => {
31                write!(formatter, "\"{}\" contains parent directory", p.display())
32            }
33            RootDirContains(p) => write!(formatter, "\"{}\" contains root directory", p.display()),
34            OutDirNotFound => write!(formatter, "OUT_DIR not found"),
35            InvalidPath(p) => write!(formatter, "Invalid path {}", p.display()),
36        }
37    }
38}