Skip to main content

Error

Struct Error 

Source
pub struct Error { /* private fields */ }
Expand description

Structured adapter error with stable classification and facts.

fmt::Display renders only the human-facing Self::message. Machine policy must use the typed accessors (code, kind, status, operation, fact lookups, find_algeon_error), never parsed text. fmt::Debug renders diagnostic text containing only log-safe facts and omits the underlying causal chain.

Implementations§

Source§

impl Error

Source

pub fn new( code: ErrorCode, operation: &'static str, message: impl Into<String>, ) -> Self

Creates an adapter error with a stable operation id and message.

operation should be a stable dotted identifier such as algeon_datafusion.native_exec.execute. message is human-facing diagnostic text. Add machine-readable context with Self::with_fact.

Source

pub fn with_fact(self, key: &'static str, value: impl ToString) -> Self

Adds one machine-readable fact.

key must be a non-empty static string and should be treated as part of the diagnostic contract once exposed. value is stringified with ToString. Empty keys are ignored. Duplicate keys preserve the first value and are recorded under fact_collision_keys. Facts added here remain raw and are hidden from logs, retained diagnostics, and Facts’s fmt::Debug output unless the caller instead makes the explicit Self::with_log_safe_fact disclosure choice.

Source

pub fn with_log_safe_fact(self, key: &'static str, value: impl ToString) -> Self

Adds a fact that may be projected into logs and retained diagnostics.

Opts a fact into log and diagnostic projection under the disclosure policy. This method differs from Self::with_fact by permitting external visibility, and callers must restrict usage to bounded operational classifications that omit credentials, identifiers, paths, query literals, and sensitive payloads. Projections apply defensive redaction for URI and credential-like tokens alongside size limits, but sanitization does not replace careful classification. External or arbitrary facts must use Self::with_fact to remain hidden by default.

Caller schema details (for example strict-rejection column names) are a ClientDetail, never log-safe facts. The reserved error_facts_truncated key remains available through raw typed lookup, but cannot be opted into the projection; only the projection itself may emit that retained marker. Empty and duplicate keys follow Self::with_fact’s first-write collision policy.

Source

pub fn with_client_detail(self, detail: ClientDetail) -> Self

Attaches the caller schema detail this error names, when none is attached yet.

Source

pub fn with_preserved_facts(self, facts: Facts) -> Self

Replaces this error’s fact set with an existing set, preserving its disclosure flags and collision evidence.

Source

pub fn with_source<E>(self, source: E) -> Self
where E: StdError + Send + Sync + 'static,

Attaches the source error when no source is already present.

A second source is discarded so error decoration cannot replace the original causal chain.

Source

pub fn with_boxed_source( self, source: Box<dyn StdError + Send + Sync + 'static>, ) -> Self

Attaches an already boxed source error when no source is already present.

A second source is discarded so error decoration cannot replace the original causal chain.

Source

pub fn from_cudf( operation: &'static str, message: impl Into<String>, source: Error, ) -> Self

Wraps a cudf::Error at the adapter boundary.

operation should be the stable dotted id for the adapter operation that called cuDF, and message should describe the failure for humans. cuDF classification and a URI-redacted message are preserved as cudf_* facts.

Source

pub fn code(&self) -> ErrorCode

Returns the stable machine-readable adapter error code.

Source

pub fn kind(&self) -> ErrorKind

Returns the coarse category derived from Self::code.

Source

pub fn status(&self) -> ErrorStatus

Returns the retry/remediation status derived from Self::code.

Source

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

Returns the stable dotted operation id that produced the error.

Source

pub fn message(&self) -> &str

Returns the human-facing diagnostic message.

Source

pub fn facts(&self) -> &Facts

Returns the sorted machine-readable fact set.

Source

pub fn fact_value(&self, key: &str) -> Option<&str>

Returns one fact value by key.

Source

pub fn client_detail(&self) -> Option<&ClientDetail>

Caller schema detail this error names.

Source

pub fn source_error(&self) -> Option<&(dyn StdError + 'static)>

Returns the underlying source error when one was attached.

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, f: &mut Formatter<'_>) -> Result

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

impl Error for Error

Source§

fn source(&self) -> Option<&(dyn StdError + '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 DataFusionError

Source§

fn from(error: Error) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl !RefUnwindSafe for Error

§

impl !UnwindSafe for Error

§

impl Freeze for Error

§

impl Send for Error

§

impl Sync for Error

§

impl Unpin for Error

§

impl UnsafeUnpin 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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<L> LayerExt<L> for L

Source§

fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>
where L: Layer<S>,

Applies the layer to a service and wraps it in Layered.
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
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<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