Skip to main content

EngineError

Enum EngineError 

Source
pub enum EngineError {
    UnknownSource {
        name: String,
        configured: String,
    },
    Token {
        message: String,
    },
    NoSources,
    NotWritable {
        name: String,
        kind: String,
    },
    NoDocuments {
        name: String,
        kind: String,
    },
    DestinationUnavailable {
        name: String,
        error: SourceError,
    },
    NoSuchItem {
        id: String,
    },
    StaleOrigin {
        item: String,
        origin: String,
    },
    SourceRefused {
        name: String,
        error: SourceError,
    },
    CopyNotUndone {
        error: Box<EngineError>,
        left_behind: LeftBehind,
        refusal: SourceError,
    },
}
Expand description

What the engine refuses before it asks any source.

Distinct from a SourceFailure, which is one source failing while the others answer: everything here means the request itself cannot be run at all.

Eq is deliberately absent: three variants carry the SourceError the source itself gave, which is what a user has to act on, and that type is PartialEq alone.

Variants§

§

UnknownSource

A --source named something no configuration configures.

Fields

§name: String

The name that was asked for.

§configured: String

The names that exist, for the message.

§

Token

A --page token that decodes but does not belong to this query.

Fields

§message: String

What the token claims that this configuration cannot honour.

§

NoSources

Nothing at all is configured, so there is nothing to ask.

§

NotWritable

A copy named a destination whose plugin has no write side.

Fields

§name: String

The configured name of the destination.

§kind: String

The plugin behind it.

§

NoDocuments

A document read or write named a source whose plugin has no documents.

The same shape NotWritable has, and for the same reason: the declaration is read once at the handshake, so a source that says it has no documents is refused before anything is read rather than asked and then apologised for.

Fields

§name: String

The configured name of the source.

§kind: String

The plugin behind it.

§

DestinationUnavailable

A copy named a destination that is configured but could not be built.

Fields

§name: String

The configured name of the destination.

§error: SourceError

Why it did not build.

§

NoSuchItem

A copy named an id its own source does not hold.

Fields

§id: String

The qualified id that named nothing.

§

StaleOrigin

An item’s recorded origin names an item the destination no longer holds.

Refused rather than created: the destination item was deleted or moved on purpose, and creating a second one there would duplicate work somebody removed.

Fields

§item: String

The item being copied.

§origin: String

The origin it records.

§

SourceRefused

A source refused something the copy asked of it.

Distinct from a SourceFailure, which leaves the other sources’ results standing: a copy is one write into one destination, and half of one is not an answer.

Fields

§name: String

The source that refused.

§error: SourceError

What it said.

§

CopyNotUndone

A copy failed, and the destination could not be put back the way it was found.

A copy is either complete or it never happened, and the engine undoes its own writes to make that true. When the destination will not take one of them back, the failure has to say so and name what is still there: a user told only that the copy failed would copy again over a destination nobody has described to them, which is the retry that trips a hosted destination’s rate limiter.

Fields

§error: Box<EngineError>

Why the copy failed in the first place.

§left_behind: LeftBehind

The items the copy created or overwrote and could not take back.

The ids themselves rather than a sentence about them: a caller acting on this — removing them, or reporting them — needs the ids, and the joined form only the message needs is LeftBehind’s own Display.

§refusal: SourceError

What the destination said when the copy tried to take them back.

Trait Implementations§

Source§

impl Clone for EngineError

Source§

fn clone(&self) -> EngineError

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 EngineError

Source§

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

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

impl Display for EngineError

Source§

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

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

impl Error for EngineError

1.30.0 · 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 PartialEq for EngineError

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for EngineError

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

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> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

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: Sized + 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: Sized + 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> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

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> 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 = !

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