pub enum ExecFailureKind {
NotFound,
PermissionDenied,
NotExecutable,
BadCwd,
BadArgs,
ResourceLimit,
UserSetupFailed,
OutOfMemory,
PtySetupFailed,
Other,
}Expand description
Coarse classification of an ExecFailed cause. The CLI’s
stage-to-hint mapper keys off this; the SDK exposes it directly
for programmatic consumers.
Variants§
NotFound
Binary not found on PATH or at the explicit path. ENOENT on
the binary path itself (not on the cwd — see BadCwd).
PermissionDenied
Binary found but not executable: EACCES or EPERM on file.
NotExecutable
File exists but the kernel can’t run it: bad ELF, missing interpreter for a shebang script, wrong architecture, etc. ENOEXEC.
BadCwd
Working directory unusable: doesn’t exist (ENOENT on cwd), not a directory (ENOTDIR), or no permission to chdir.
BadArgs
Argument or env list too large (E2BIG), too many symlinks resolving the path (ELOOP), path too long (ENAMETOOLONG), or invalid bytes in argv (e.g. interior NUL — EINVAL).
ResourceLimit
Resource limit prevented the spawn: rejected setrlimit
(EPERM/EINVAL), per-process fork limit (EAGAIN with NPROC),
fd table exhaustion (EMFILE/ENFILE).
UserSetupFailed
User/group setup failed: requested user doesn’t exist in the
sandbox, or setuid/setgid rejected (EPERM).
OutOfMemory
Memory pressure: kernel couldn’t allocate (ENOMEM, or EAGAIN on fork without an explicit rlimit cause).
PtySetupFailed
PTY allocation or attachment failed (pty mode only).
Other
Anything else: errno is carried verbatim, message and
stage describe the specifics.
Trait Implementations§
Source§impl Clone for ExecFailureKind
impl Clone for ExecFailureKind
Source§fn clone(&self) -> ExecFailureKind
fn clone(&self) -> ExecFailureKind
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 ExecFailureKind
impl Debug for ExecFailureKind
Source§impl<'de> Deserialize<'de> for ExecFailureKind
impl<'de> Deserialize<'de> for ExecFailureKind
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 PartialEq for ExecFailureKind
impl PartialEq for ExecFailureKind
Source§fn eq(&self, other: &ExecFailureKind) -> bool
fn eq(&self, other: &ExecFailureKind) -> bool
self and other values to be equal, and is used by ==.