Skip to main content

ExitCode

Struct ExitCode 

Source
pub struct ExitCode(/* private fields */);
Expand description

Exit codes matching the documented exit code table.

ExitCode provides type-safe exit code handling for xchecker operations. Use the named constants for common exit codes, or as_i32() to get the numeric value for std::process::exit().

This is a stable public type. The numeric values are part of the public API and will not change in 1.x releases.

§Constants

ConstantValueDescription
SUCCESS0Operation completed successfully
INTERNAL1General/internal failure
CLI_ARGS2Invalid CLI arguments
PACKET_OVERFLOW7Packet size exceeded
SECRET_DETECTED8Secret found in content
LOCK_HELD9Lock already held
PHASE_TIMEOUT10Phase timed out
CLAUDE_FAILURE70Claude CLI failed

§Example

use xchecker_utils::exit_codes::ExitCode;

// Using named constants
let code = ExitCode::SUCCESS;
assert_eq!(code.as_i32(), 0);

let code = ExitCode::PACKET_OVERFLOW;
assert_eq!(code.as_i32(), 7);

// Comparing exit codes
assert_eq!(ExitCode::SUCCESS, ExitCode::from_i32(0));

§Integration with XCheckerError

Use XCheckerError::to_exit_code() to map errors to exit codes:

use xchecker_utils::error::ConfigError;
use xchecker_utils::error::XCheckerError;
use xchecker_utils::exit_codes::ExitCode;

let err = XCheckerError::Config(ConfigError::InvalidFile("test".to_string()));
assert_eq!(err.to_exit_code(), ExitCode::CLI_ARGS);

Implementations§

Source§

impl ExitCode

Source

pub const SUCCESS: ExitCode

Success - operation completed successfully

Source

pub const CLI_ARGS: ExitCode

CLI arguments error - invalid or missing command-line arguments

Source

pub const PACKET_OVERFLOW: ExitCode

Packet overflow - input packet exceeded size limits before Claude invocation

Source

pub const SECRET_DETECTED: ExitCode

Secret detected - redaction system detected potential secrets

Source

pub const LOCK_HELD: ExitCode

Lock held - another process is already working on the same spec

Source

pub const PHASE_TIMEOUT: ExitCode

Phase timeout - phase execution exceeded configured timeout

Source

pub const CLAUDE_FAILURE: ExitCode

Claude failure - underlying Claude CLI invocation failed

Source

pub const INTERNAL: ExitCode

Internal error - general failure

Source

pub const fn as_i32(self) -> i32

Get the numeric exit code value.

Use this with std::process::exit().

Source

pub const fn from_i32(code: i32) -> Self

Create an ExitCode from a raw i32 value.

Prefer using the named constants when possible.

Trait Implementations§

Source§

impl Clone for ExitCode

Source§

fn clone(&self) -> ExitCode

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ExitCode

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl From<ExitCode> for i32

Source§

fn from(code: ExitCode) -> Self

Converts to this type from the input type.
Source§

impl From<i32> for ExitCode

Source§

fn from(code: i32) -> Self

Converts to this type from the input type.
Source§

impl PartialEq for ExitCode

Source§

fn eq(&self, other: &ExitCode) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for ExitCode

Source§

impl Eq for ExitCode

Source§

impl StructuralPartialEq for ExitCode

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more