Skip to main content

ErrorCode

Enum ErrorCode 

Source
pub enum ErrorCode {
Show 24 variants QuerySyntax, QuerySemantic, QueryTimeout, QueryUnsupported, QueryOptimization, QueryExecution, TransactionConflict, TransactionTimeout, TransactionReadOnly, TransactionInvalidState, TransactionSerialization, TransactionDeadlock, StorageFull, StorageCorrupted, StorageRecoveryFailed, InvalidInput, NodeNotFound, EdgeNotFound, PropertyNotFound, LabelNotFound, TypeMismatch, Internal, SerializationError, IoError,
}
Expand description

Machine-readable error code for programmatic error handling.

Error codes follow the pattern GRAFEO-{category}{number}:

  • Q: Query errors (parse, semantic, timeout)
  • T: Transaction errors (conflict, timeout, state)
  • S: Storage errors (full, corruption)
  • V: Validation errors (not found, type mismatch, invalid input)
  • X: Internal errors (should not happen)

Clients can match on these codes without parsing error messages.

§Examples

use grafeo_common::utils::error::{Error, ErrorCode};

let err = Error::Internal("something broke".into());
assert_eq!(err.error_code().as_str(), "GRAFEO-X001");
assert!(!err.error_code().is_retryable());

Variants§

§

QuerySyntax

Query failed to parse.

§

QuerySemantic

Query parsed but is invalid (unknown label, type mismatch, etc.).

§

QueryTimeout

Query exceeded timeout.

§

QueryUnsupported

Feature not supported for this query language.

§

QueryOptimization

Query optimization failed.

§

QueryExecution

Query execution failed.

§

TransactionConflict

Write-write conflict (retry possible).

§

TransactionTimeout

Transaction exceeded TTL.

§

TransactionReadOnly

Transaction is read-only but attempted a write.

§

TransactionInvalidState

Invalid transaction state.

§

TransactionSerialization

Serialization failure (SSI violation).

§

TransactionDeadlock

Deadlock detected.

§

StorageFull

Memory or disk limit reached.

§

StorageCorrupted

WAL or data corruption detected.

§

StorageRecoveryFailed

Recovery from WAL failed.

§

InvalidInput

Request validation failed.

§

NodeNotFound

Node not found.

§

EdgeNotFound

Edge not found.

§

PropertyNotFound

Property key not found.

§

LabelNotFound

Label not found.

§

TypeMismatch

Type mismatch.

§

Internal

Unexpected internal error.

§

SerializationError

Serialization/deserialization error.

§

IoError

I/O error.

Implementations§

Source§

impl ErrorCode

Source

pub const fn as_str(&self) -> &'static str

Returns the string code (e.g. "GRAFEO-Q001").

Source

pub const fn is_retryable(&self) -> bool

Whether this error is retryable (client should retry the operation).

Trait Implementations§

Source§

impl Clone for ErrorCode

Source§

fn clone(&self) -> ErrorCode

Returns a duplicate of the value. Read more
1.0.0 · 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 Display for ErrorCode

Source§

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

Formats the value using the given formatter. Read more
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 · 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 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<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. 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> 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 = 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.