async_walk/
error.rs

1use std::path::PathBuf;
2
3#[derive(Debug)]
4pub enum Error {
5    SymlinkCycle(PathBuf),
6    Io(PathBuf, ::std::io::Error),
7    Filter(PathBuf, Box<dyn ::std::error::Error + Send>),
8}
9
10pub type Result<T> = ::std::result::Result<T, Error>;
11
12impl Error {
13    pub fn symlink_cycle(self) -> Option<PathBuf> {
14        if let Error::SymlinkCycle(p) = self {
15            Some(p)
16        } else {
17            None
18        }
19    }
20
21    pub fn io(self) -> Option<(PathBuf, ::std::io::Error)> {
22        if let Error::Io(p, e) = self {
23            Some((p, e))
24        } else {
25            None
26        }
27    }
28
29    pub fn filter(self) -> Option<(PathBuf, Box<dyn ::std::error::Error + Send>)> {
30        if let Error::Filter(p, e) = self {
31            Some((p, e))
32        } else {
33            None
34        }
35    }
36}