Skip to main content

AreevError

Enum AreevError 

Source
pub enum AreevError {
Show 23 variants NotFound(Hash), Format(String), Validation(String), Serialization(String), ToolRenderUnsupported(String), Storage(String), StoreBusy(String), TlsUnavailable(String), ReadOnly(String), ReadOnlyOpenFailed(String), SchemaNotProvisioned(String), SupersessionConflict(Hash), SupersessionChainTooDeep(Hash), AnnIndexUnsupported(String), CryptoError(String), AccumulateRetryExhausted, AccumulateInternal(String), AccumulateBackpressureRejected, Internal(String), AuthzDenied(String), AuthzUnknownPrincipal(String), AuthzConfigInvalid(String), AuthzTokenUnrecognized,
}
Expand description

All errors in areev-core.

Variants§

§

NotFound(Hash)

§

Format(String)

§

Validation(String)

§

Serialization(String)

§

ToolRenderUnsupported(String)

§

Storage(String)

§

StoreBusy(String)

Another writer holds this memory (single-writer-per-memory is enforced, not advisory, on backends that can arbitrate it).

§

TlsUnavailable(String)

The connection to a backing store asks for transport encryption this build cannot provide. Its own code because the alternative — reporting a generic validation failure — reads as a typo in the DSN, when what actually happened is that a refusal to downgrade to plaintext saved the operator from an unencrypted connection they did not ask for.

§

ReadOnly(String)

A write was attempted through a handle opened with read_only: true (AreevOptions::read_only). Refused at the store layer on BOTH backends — on postgres this is what stands between a least-privilege SELECT-only role and a raw 42501 permission denied; on the embedded backend there is no privilege system to fail against, so the store enforces the same contract itself, which is what lets one conformance case cover both.

§

ReadOnlyOpenFailed(String)

A read-only open could not verify the schema/tables it expected to find (postgres only — the embedded backend bootstraps its own file regardless of read_only). Distinct from Storage because the fix differs: “schema absent” needs someone to create and migrate it; “schema present but not initialized” needs the owning role to open it read-write once to finish bootstrap. A read-only role can do neither itself — that is the whole point of the least-privilege grant — so the message says which one it is rather than surfacing the raw permission-denied Postgres gives for CREATE SCHEMA/DDL.

§

SchemaNotProvisioned(String)

A postgres open found the schema absent or stamped at an older schema version, and the DSN said provision=never — so no advisory lock and no DDL were attempted, not even CREATE SCHEMA. Distinct from ReadOnlyOpenFailed: that one is a read-only handle discovering it has nothing to read; this is a read-WRITE handle that was told never to bootstrap on the request path, which is how a deployment guarantees its runtime role holds no CREATE and its schema changes go through a migration step. Like its sibling, the message names WHICH of the two operator actions is needed — create the memory, or migrate it forward — because they are different jobs.

§

SupersessionConflict(Hash)

§

SupersessionChainTooDeep(Hash)

A supersession-chain walk (Areev::supersession_chain) did not reach a root within the bounded hop count. Real edit histories terminate in a handful of hops; exceeding the bound means the supersedes links are corrupt (e.g. cyclic) rather than merely long, so the walk fails loudly instead of looping the process forever.

§

AnnIndexUnsupported(String)

An approximate-nearest-neighbour index was asked for on a backend that has none. Vector recall is an exact scan on the embedded engine — there is no ANN structure to build there, and silently doing nothing would leave a caller believing its corpus was indexed when its latency is still linear. Only the Postgres tier (pgvector HNSW) answers this.

§

CryptoError(String)

§

AccumulateRetryExhausted

§

AccumulateInternal(String)

§

AccumulateBackpressureRejected

§

Internal(String)

§

AuthzDenied(String)

A verb the session’s grants don’t cover (authz::AuthzSet::check).

§

AuthzUnknownPrincipal(String)

A principal name no credential authenticates.

§

AuthzConfigInvalid(String)

The credential map failed to load or validate (fail closed).

§

AuthzTokenUnrecognized

A presented bearer token matched no credential. Deliberately carries no payload: a refused secret must never reach a log line.

Implementations§

Source§

impl AreevError

Source

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

Stable machine-readable error code in DOMAIN-Ennn form (see the repo-root ERROR_CODES.md registry). Every Display string begins with this code, so a user who reports the leading token points us at the exact variant and subsystem. Codes are append-only debugging handles — never renumber or reuse an existing one.

Trait Implementations§

Source§

impl Debug for AreevError

Source§

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

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

impl Display for AreevError

Source§

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

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

impl Error for AreevError

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

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

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

fn try_from(value: U) -> Result<T, !>

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