Skip to main content

Error

Enum Error 

Source
pub enum Error {
Show 14 variants Connection(String), Authentication(String), Protocol(String), Sql(String), JsonDecode(Error), Io(Error), Config(String), Cancelled, InvalidSchema(String), ConnectionBusy(String), InvalidState { expected: String, actual: String, }, ConnectionClosed, Deserialization { type_name: String, details: String, }, MemoryLimitExceeded { limit: usize, estimated_memory: usize, },
}
Expand description

Main error type for fraiseql-wire operations

Variants§

§

Connection(String)

Connection error

§

Authentication(String)

Authentication error

§

Protocol(String)

Protocol violation

§

Sql(String)

SQL execution error

§

JsonDecode(Error)

JSON decoding error

§

Io(Error)

I/O error

§

Config(String)

Invalid configuration

§

Cancelled

Query cancelled by client

§

InvalidSchema(String)

Invalid result schema (not single data column)

§

ConnectionBusy(String)

Connection already in use

§

InvalidState

Invalid connection state

Fields

§expected: String

Expected state

§actual: String

Actual state

§

ConnectionClosed

Connection closed

§

Deserialization

Type deserialization error

Occurs when a row cannot be deserialized into the target type. This is a consumer-side error that includes the type name and serde details.

Fields

§type_name: String

Name of the type we were deserializing to

§details: String

Details from serde_json about what went wrong

§

MemoryLimitExceeded

Memory limit exceeded

Terminal error: The consumer cannot keep pace with data arrival.

Occurs when estimated buffered memory exceeds the configured maximum. This indicates the consumer is too slow relative to data arrival rate.

NOT retriable: Retrying the same query with the same consumer will hit the same limit.

Solutions:

  1. Increase consumer throughput (faster .next() polling)
  2. Reduce items in flight (configure lower chunk_size)
  3. Remove memory limit (use unbounded mode)
  4. Use different transport (consider tokio-postgres for flexibility)

Fields

§limit: usize

Configured memory limit in bytes

§estimated_memory: usize

Current estimated memory in bytes (items_buffered * 2048)

Implementations§

Source§

impl Error

Source

pub fn connection<S: Into<String>>(msg: S) -> Self

Create a connection error with context

Source

pub fn connection_refused(host: &str, port: u16) -> Self

Create a connection refused error (helpful message for debugging)

Source

pub fn protocol<S: Into<String>>(msg: S) -> Self

Create a protocol error with context

Source

pub fn sql<S: Into<String>>(msg: S) -> Self

Create a SQL error with context

Source

pub fn invalid_schema_columns(num_columns: usize) -> Self

Create a schema validation error (query returned wrong columns)

Source

pub fn invalid_schema<S: Into<String>>(msg: S) -> Self

Create an invalid schema error with context

Source

pub fn auth_failed(username: &str, reason: &str) -> Self

Create an authentication error with helpful message

Source

pub fn config_invalid<S: Into<String>>(msg: S) -> Self

Create a config error with helpful message

Source

pub fn is_retriable(&self) -> bool

Check if error is retriable (transient)

Retriable errors typically indicate temporary issues that may succeed on retry:

  • I/O errors (network timeouts, etc.)
  • Connection closed (can reconnect)

Non-retriable errors indicate permanent problems:

  • Invalid schema (won’t change between attempts)
  • Invalid configuration (needs user intervention)
  • SQL errors (query is invalid)
Source

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

Get error category for observability and logging

Used to categorize errors for metrics, tracing, and error handling decisions.

Trait Implementations§

Source§

impl Debug for Error

Source§

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

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

impl Display for Error

Source§

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

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

impl Error for Error

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 Error

Source§

fn from(source: Error) -> Self

Converts to this type from the input type.
Source§

impl From<Error> for Error

Source§

fn from(source: Error) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl Freeze for Error

§

impl !RefUnwindSafe for Error

§

impl Send for Error

§

impl Sync for Error

§

impl Unpin for Error

§

impl UnsafeUnpin for Error

§

impl !UnwindSafe for Error

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 = 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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

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