1use thiserror::Error;
4
5pub type Result<T> = std::result::Result<T, ResolverError>;
7
8#[derive(Debug, Error)]
10pub enum ResolverError {
11 #[error("I/O error: {0}")]
13 Io(#[from] std::io::Error),
14
15 #[error("resolver directory not found: {path}")]
17 DirNotFound {
18 path: String,
20 },
21
22 #[error("resolver file not managed by macos-resolver: {domain}")]
24 NotManaged {
25 domain: String,
27 },
28
29 #[error("invalid config: {0}")]
31 InvalidConfig(String),
32}
33
34impl ResolverError {
35 #[must_use]
37 pub fn is_permission_denied(&self) -> bool {
38 matches!(self, Self::Io(e) if e.kind() == std::io::ErrorKind::PermissionDenied)
39 }
40}