Skip to main content

ARCPError

Enum ARCPError 

Source
#[non_exhaustive]
pub enum ARCPError {
Show 26 variants Cancelled { reason: String, }, InvalidArgument { detail: String, }, DeadlineExceeded { detail: String, }, NotFound { kind: &'static str, id: String, }, AlreadyExists { kind: &'static str, id: String, }, PermissionDenied { detail: String, }, ResourceExhausted { detail: String, retry_after_seconds: Option<u64>, }, FailedPrecondition { detail: String, }, Aborted { detail: String, }, OutOfRange { detail: String, }, Unimplemented { section: &'static str, detail: String, }, Internal { detail: String, }, Unavailable { detail: String, }, DataLoss { detail: String, }, Unauthenticated { detail: String, }, HeartbeatLost { missed_count: u32, }, LeaseExpired { lease_id: LeaseId, }, LeaseRevoked { lease_id: LeaseId, reason: String, }, BackpressureOverflow { detail: String, }, BudgetExhausted { detail: String, }, LeaseSubsetViolation { detail: String, }, AgentVersionNotAvailable { agent: String, version: String, }, Unknown { detail: String, }, Serialization(Error), Storage { detail: String, }, Id(IdParseError),
}
Expand description

In-process error type returned from library APIs.

Maps 1:1 onto the canonical ErrorCode taxonomy, with extra context on each variant so call sites can build a structured error envelope (§18.1) directly. The variants are #[non_exhaustive] so the taxonomy can grow without a breaking change.

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

Cancelled

Operation was cancelled by the caller, the runtime, or by policy.

Fields

§reason: String

Free-form reason for the cancellation.

§

InvalidArgument

Malformed or invalid argument.

Fields

§detail: String

Description of the violated constraint.

§

DeadlineExceeded

Operation timed out before completion.

Fields

§detail: String

Description of what timed out.

§

NotFound

Referenced entity does not exist.

Fields

§kind: &'static str

Kind of entity (e.g. "job", "artifact").

§id: String

Lookup key as a string.

§

AlreadyExists

Entity creation conflicted with an existing entity.

Fields

§kind: &'static str

Kind of entity that conflicted.

§id: String

Lookup key as a string.

§

PermissionDenied

Caller lacks the required permission or lease.

Fields

§detail: String

Description of the missing permission.

§

ResourceExhausted

Quota or rate limit hit.

Fields

§detail: String

Description of the exhausted resource.

§retry_after_seconds: Option<u64>

Floor for the next attempt, if known (§18.3).

§

FailedPrecondition

Required pre-condition unmet (e.g. job not in cancellable state).

Fields

§detail: String

Description of the unmet pre-condition.

§

Aborted

Concurrency conflict or hard termination.

Fields

§detail: String

Description of the abort cause.

§

OutOfRange

Argument outside the valid range.

Fields

§detail: String

Description of the range violation.

§

Unimplemented

Feature not supported by this runtime.

Fields

§section: &'static str

RFC section reference (e.g. "10.6").

§detail: String

Description of the missing surface.

§

Internal

Internal runtime error. Should be rare and indicate a bug.

Fields

§detail: String

Description of the internal failure.

§

Unavailable

Transient unavailability; retry MAY succeed.

Fields

§detail: String

Description of the unavailable subsystem.

§

DataLoss

Unrecoverable data loss or corruption (e.g. retention expired).

Fields

§detail: String

Description of what was lost.

§

Unauthenticated

Missing or invalid credentials.

Fields

§detail: String

Description of the auth failure.

§

HeartbeatLost

Job missed required heartbeats (RFC §10.3).

Fields

§missed_count: u32

How many consecutive heartbeats were missed.

§

LeaseExpired

Operation attempted with an expired lease (RFC §15.5).

Fields

§lease_id: LeaseId

The expired lease.

§

LeaseRevoked

Operation attempted with a revoked lease (RFC §15.5).

Fields

§lease_id: LeaseId

The revoked lease.

§reason: String

Reason supplied by the grantor.

§

BackpressureOverflow

Subscription or stream dropped due to backpressure overflow.

Fields

§detail: String

Description of the overflowing channel.

§

BudgetExhausted

A cost.budget capability counter reached its maximum (ARCP v1.1 §9.6).

Fields

§detail: String

Description of the exhausted budget counter.

§

LeaseSubsetViolation

A delegated or child lease attempted to exceed its parent envelope.

Fields

§detail: String

Description of the violated lease axis.

§

AgentVersionNotAvailable

job.submit named an agent@version the runtime does not have (ARCP v1.1 §7.5).

Fields

§agent: String

Agent name.

§version: String

Requested version.

§

Unknown

Unknown error. Avoid in favour of a specific code.

Fields

§detail: String

Description of the failure.

§

Serialization(Error)

JSON serialisation / deserialisation failure at the wire boundary.

§

Storage

Persistent storage failure (event log, artifact store). Carries a stringified description of the underlying driver error so this crate stays free of storage-backend dependencies.

Fields

§detail: String

Stringified underlying error.

§

Id(IdParseError)

Identifier failed to parse on a wire boundary.

Implementations§

Source§

impl ARCPError

Source

pub const fn code(&self) -> ErrorCode

Map this in-process error to its canonical ErrorCode.

Source

pub const fn retryable(&self) -> bool

Convenience: return the §18.3 default retryability for this error.

Trait Implementations§

Source§

impl Debug for ARCPError

Source§

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

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

impl Display for ARCPError

Source§

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

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

impl Error for ARCPError

Source§

fn source(&self) -> Option<&(dyn Error + 'static)>

Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§

fn description(&self) -> &str

👎Deprecated since 1.42.0:

use the Display impl or to_string()

1.0.0 · Source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

Source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type-based access to context intended for error reports. Read more
Source§

impl From<Error> for ARCPError

Source§

fn from(source: Error) -> ARCPError

Converts to this type from the input type.
Source§

impl From<IdParseError> for ARCPError

Source§

fn from(source: IdParseError) -> ARCPError

Converts to this type from the input type.

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> 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> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. 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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

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