Skip to main content

GraphError

Enum GraphError 

Source
pub enum GraphError {
Show 18 variants KeyNotFound { key: String, }, DuplicateKey { key: String, }, Io(Error), Corrupt { detail: String, }, RuleInvalid { detail: String, }, RuleOwned { detail: String, }, RuleNotFound { name: String, }, QueryError { detail: String, }, IngestError { detail: String, }, ReadOnly, CommitOutOfRange { commit: u64, total: u64, floor: u64, }, ViewPropReadOnly { view_name: String, }, CasConflict { key: String, expected: u64, actual: u64, }, MaskedReadOnly, RoleWriteDenied { reason: String, }, Busy { holder: Option<u32>, }, NamespaceImmutable { key: String, from: String, to: String, }, CrossNamespace { src: String, src_ns: String, dst: String, dst_ns: String, },
}

Variants§

§

KeyNotFound

Fields

§

DuplicateKey

Fields

§

Io(Error)

§

Corrupt

Fields

§detail: String
§

RuleInvalid

Fields

§detail: String
§

RuleOwned

Fields

§detail: String
§

RuleNotFound

Fields

§name: String
§

QueryError

Fields

§detail: String
§

IngestError

Fields

§detail: String
§

ReadOnly

Attempted mutation on a read-only as-of instance.

§

CommitOutOfRange

Requested commit index is outside the retained range.

The valid range is floor..total: floor is the oldest commit still reachable (the WAL horizon floor, 0 when nothing has been pruned) and total is the exclusive upper bound. A floor > 0 means older events were pruned and are not retained; retrying at commit 0 will fail too.

Fields

§commit: u64
§total: u64
§floor: u64
§

ViewPropReadOnly

Attempted to write to a view-managed property.

Fields

§view_name: String
§

CasConflict

A compare-and-set precondition was not satisfied.

expected is the commit seq the caller expected to see; actual is the commit seq recorded in the last-change map (or u64::MAX for NodeAbsent conflicts where the node unexpectedly exists).

Fields

§expected: u64
§actual: u64
§

MaskedReadOnly

Write statement submitted to a read-only masked query path.

Returned by [GraphDb::query_masked] when the Cypher input is a write statement (CREATE / MERGE / MATCH…SET / DELETE). The HTTP layer maps this to 400 Bad Request with body {"error":"masked queries are read-only"}.

§

RoleWriteDenied

A role-scoped write was denied by the authz decision table (§3, §4.3).

reason carries the verbatim §4.3 error body text (without the JSON envelope). The HTTP layer maps this to 403 with body {"error": "<reason>"}. Five reason patterns are defined by the spec:

  • "role-bound token: label '<L>' not in write scope (<scope_field>)"
  • "role-bound token: target node not visible" (hidden ≡ absent)
  • "role-bound token: edge endpoint not visible"
  • "role-bound token: edge type '<T>' not in write scope (<scope_field>)"
  • "role-bound token: this endpoint is not permitted"

Fields

§reason: String
§

Busy

The store’s advisory cross-process write lock could not be taken within the caller’s wait budget: another process is writing.

Nothing was written and in-memory state is unchanged, so retrying later is always safe. Readers never see this error — reads do not take the lock.

holder is the process id of the lock holder when the platform makes it cheaply knowable, and None otherwise. It is a diagnostic hint only; never branch on it.

Fields

§holder: Option<u32>
§

NamespaceImmutable

A write tried to change a node’s namespace.

A namespace is a tenancy boundary, set when the node is inserted and fixed for its lifetime: moving a node between tenants is a deletion from one and a creation in the other, and saying so is more honest than a property edit that silently re-homes every edge the node carries.

Fields

§from: String
§

CrossNamespace

A user-written edge would join two nodes in different namespaces.

Only a global rule (one with no namespace) may derive an edge across the boundary; a namespaced rule sees one namespace’s nodes only, so its edges are intra-namespace by construction.

Fields

§src_ns: String
§dst_ns: String

Trait Implementations§

Source§

impl Debug for GraphError

Source§

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

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

impl Display for GraphError

Source§

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

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

impl Error for GraphError

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 From<Error> for GraphError

Source§

fn from(e: Error) -> GraphError

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

Source§

type ArchivedMetadata = ()

The archived version of the pointer metadata for this type.
Source§

fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata

Converts some archived metadata to the pointer metadata for itself.
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, 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> LayoutRaw for T

Source§

fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>

Returns the layout of the type.
Source§

impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
where T: SharedNiching<N1, N2>, N1: Niching<T>, N2: Niching<T>,

Source§

unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool

Returns whether the given value has been niched. Read more
Source§

fn resolve_niched(out: Place<NichedOption<T, N1>>)

Writes data to out indicating that a T is niched.
Source§

impl<T> Pointee for T

Source§

type Metadata = ()

The metadata type for pointers and references to this type.
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.