Skip to main content

EngineError

Enum EngineError 

Source
#[non_exhaustive]
pub enum EngineError {
Show 13 variants Auth(AuthGate), InvalidWorldName, NotFound, AppendOnly, PayloadTooLarge { max: usize, }, PreconditionFailed { message: &'static str, }, QuotaExceeded { used: usize, quota: usize, projected: usize, }, TransientStorage { sqlite_code: Option<i32>, }, InsufficientStorage { sqlite_code: Option<i32>, }, Storage { sqlite_code: Option<i32>, }, SubscriptionLimit, ShuttingDown, InternalInvariant(&'static str),
}
Expand description

Runtime operation errors reported by the Engine facade.

Distinct from EngineBuildError: these are per-operation failures returned by Engine::read, Engine::replace, Engine::append, Engine::delete, Engine::subscribe, and the introspection methods. The enum is #[non_exhaustive]; match on the variants you care about and route the rest through a default arm.

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

Auth(AuthGate)

Caller’s tier is too low for the requested gate.

§

InvalidWorldName

The supplied world name failed canonical-path validation.

§

NotFound

The world does not exist.

§

AppendOnly

The target world is append-only and refuses delete/overwrite (for example var/log/deletes).

§

PayloadTooLarge

Request body exceeded the per-world byte limit.

Fields

§max: usize

Configured maximum body length, in bytes.

§

PreconditionFailed

An If-Match / If-None-Match precondition rejected the write.

Fields

§message: &'static str

Static reason string (stale, exists, …).

§

QuotaExceeded

Write would exceed the configured durable storage quota.

Fields

§used: usize

Bytes already in use.

§quota: usize

Configured quota ceiling.

§projected: usize

Projected total if the write were applied.

§

TransientStorage

Storage is temporarily unavailable (e.g. SQLite BUSY/LOCKED). Callers should retry with backoff.

Fields

§sqlite_code: Option<i32>

Underlying SQLite extended result code, when available.

§

InsufficientStorage

Storage backing exhausted (full disk, IO failure that maps to “no space left”). Callers must surface this as 5xx-class to operators.

Fields

§sqlite_code: Option<i32>

Underlying SQLite extended result code, when available.

§

Storage

Generic storage failure that is neither transient nor insufficient.

Fields

§sqlite_code: Option<i32>

Underlying SQLite extended result code, when available.

§

SubscriptionLimit

Subscription slot semaphore is exhausted.

§

ShuttingDown

Engine::shutdown has been called; do not start new operations.

§

InternalInvariant(&'static str)

Internal invariant violation. Indicates a bug in the engine.

Implementations§

Source§

impl EngineError

Source

pub fn sqlite_code(&self) -> Option<i32>

Returns the underlying SQLite extended result code, when this error originated in the storage backend.

Non-storage variants (auth, not-found, append-only, precondition, quota, subscription-limit, shutting-down, internal-invariant) always return None. Adapters can use this for protocol-specific code mapping without inspecting the variant.

Trait Implementations§

Source§

impl Debug for EngineError

Source§

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

Formats the value using the given formatter. Read more

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, 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