pub enum HelperError {
Validation(String),
ForeignSymlink {
path: String,
current: String,
},
NotASymlink {
path: String,
},
CliTargetIsSymlink {
target: String,
},
CliTargetMissing {
target: String,
},
CliTargetNotFile {
target: String,
},
CliTargetEscaped {
target: String,
resolved: String,
},
ForeignManagedFile {
path: String,
},
Io {
op: String,
path: String,
detail: String,
},
Other(String),
DockerSocketOccupied {
path: String,
},
RouteConflict {
subnet: String,
},
}Expand description
Error returned by privileged helper RPCs.
Variants§
Validation(String)
Input failed parse/validate at the RPC boundary.
ForeignSymlink
Destination is a symlink pointing outside ArcBox ownership.
NotASymlink
Destination exists but is not a symlink (e.g. real docker.sock).
CliTargetIsSymlink
CLI link target path is itself a symlink (escape risk).
CliTargetMissing
CLI link target path does not exist on disk.
CliTargetNotFile
CLI link target exists but is not a regular file.
CliTargetEscaped
Canonicalized CLI target left the ArcBox xbin tree.
ForeignManagedFile
File exists without the ArcBox management marker (DNS resolver, etc.).
Io
Filesystem / OS operation failed.
Other(String)
Catch-all for subsystem errors (routes, etc.) without a tighter variant.
Prefer a dedicated variant when a call site needs structured matching.
DockerSocketOccupied
/var/run/docker.sock (or sandboxed equivalent) is a real file/socket,
typically held by Docker Desktop — not a replaceable symlink.
Kept separate from Self::NotASymlink so path stays a pure path and
UX copy is not stuffed into structured fields.
RouteConflict
An exact route already exists and was left untouched.
Implementations§
Source§impl HelperError
impl HelperError
pub fn validation(msg: impl Into<String>) -> Self
pub fn other(msg: impl Into<String>) -> Self
pub fn io(op: &str, path: impl AsRef<Path>, err: impl Display) -> Self
pub fn foreign_symlink( path: impl AsRef<Path>, current: impl AsRef<Path>, ) -> Self
pub fn not_a_symlink(path: impl AsRef<Path>) -> Self
pub fn foreign_managed(path: impl AsRef<Path>) -> Self
pub fn docker_socket_occupied(path: impl AsRef<Path>) -> Self
Trait Implementations§
Source§impl Clone for HelperError
impl Clone for HelperError
Source§fn clone(&self) -> HelperError
fn clone(&self) -> HelperError
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for HelperError
impl Debug for HelperError
Source§impl<'de> Deserialize<'de> for HelperError
impl<'de> Deserialize<'de> for HelperError
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Display for HelperError
impl Display for HelperError
impl Eq for HelperError
Source§impl Error for HelperError
impl Error for HelperError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()