Skip to main content

ErrorCode

Enum ErrorCode 

Source
#[non_exhaustive]
pub enum ErrorCode { InvalidRef, NoOaAvailable, RateLimited, NetworkError, StoreError, LogError, CapabilityDenied, FetchTimeout, SchemaTooNew, LockTimeout, InternalError, NotImplemented, }
Expand description

The closed set of error codes doiget surfaces.

See docs/ERRORS.md for the persona × code matrix.

Marked #[non_exhaustive] so adding new variants is a minor (not major) version bump.

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.
§

InvalidRef

DOI / arXiv id failed validation.

§

NoOaAvailable

Tier 1 sources reported no OA URL.

§

RateLimited

Internal rate cap or upstream 429.

§

NetworkError

Transport / DNS / TLS failure.

§

StoreError

Filesystem write failed.

§

LogError

Provenance log write failed; the fetch was aborted.

§

CapabilityDenied

Source not granted by the runtime CapabilityProfile.

§

FetchTimeout

Per-request timeout exceeded.

§

SchemaTooNew

Store entry’s schema_version is ahead of this build.

§

LockTimeout

Could not acquire flock within 5 s.

§

InternalError

Bug — please open an issue.

§

NotImplemented

Feature is spec’d but not yet wired in this Phase. Distinct from Self::InternalError (which signals a bug) and Self::CapabilityDenied (which signals a runtime config gate). Returned by stubs that exist to pin the public surface ahead of orchestrator implementation, so an agent can react with “wait for next minor release” rather than “report a bug” or “tweak my capability profile”. Wire form: "NOT_IMPLEMENTED".

Implementations§

Source§

impl ErrorCode

Source

pub fn as_wire(&self) -> &'static str

The SCREAMING_SNAKE_CASE wire token for this code, as a &'static str. Identical to the serde representation but allocation-free and usable where a borrowed string with a 'static lifetime is required — notably the provenance log error_code column (docs/PROVENANCE_LOG.md §3), so a failure row records the actual mapped code instead of a hand-written literal that can drift from this enum (issue #118).

Trait Implementations§

Source§

impl Clone for ErrorCode

Source§

fn clone(&self) -> ErrorCode

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for ErrorCode

Source§

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

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

impl<'de> Deserialize<'de> for ErrorCode

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl From<&FetchError> for ErrorCode

Borrow-form of the collapse above, so a caller that still needs the error for its Display message / denial_context side-channel (notably the CLI human-persona renderer, issue #119) can obtain the closed code without consuming it. The owned impl delegates here so the mapping table lives in exactly one place.

Source§

fn from(e: &FetchError) -> ErrorCode

Converts to this type from the input type.
Source§

impl From<FetchError> for ErrorCode

Map FetchError to the closed crate::ErrorCode set surfaced at the public CLI / MCP boundary. Mirrors the From<RefParseError> for ErrorCode collapse from PR #55.

Source§

fn from(e: FetchError) -> ErrorCode

Converts to this type from the input type.
Source§

impl From<RefParseError> for ErrorCode

Source§

fn from(_: RefParseError) -> Self

Converts to this type from the input type.
Source§

impl Hash for ErrorCode

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for ErrorCode

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · 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 Serialize for ErrorCode

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl Copy for ErrorCode

Source§

impl Eq for ErrorCode

Source§

impl StructuralPartialEq for ErrorCode

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<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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,