pub enum Error {
Protocol(ProtocolError),
Pipeline(PipelineError),
Configuration {
message: String,
context: ErrorContext,
},
Validation {
message: String,
context: ErrorContext,
},
Runtime {
message: String,
context: ErrorContext,
},
Transport(TransportError),
Io(Error),
Serialization(Error),
Remote {
status: u16,
class: String,
message: String,
retryable: bool,
fallbackable: bool,
retry_after_ms: Option<u32>,
context: Option<ErrorContext>,
},
Unknown {
message: String,
context: ErrorContext,
},
}Expand description
Unified error type for the AI-Protocol Runtime This aggregates all low-level errors into actionable, high-level categories
Variants§
Protocol(ProtocolError)
Pipeline(PipelineError)
Configuration
Validation
Runtime
Transport(TransportError)
Io(Error)
Serialization(Error)
Remote
Fields
context: Option<ErrorContext>Unknown
Implementations§
Source§impl Error
impl Error
Sourcepub fn runtime_with_context(
msg: impl Into<String>,
context: ErrorContext,
) -> Self
pub fn runtime_with_context( msg: impl Into<String>, context: ErrorContext, ) -> Self
Create a new runtime error with structured context
Sourcepub fn validation_with_context(
msg: impl Into<String>,
context: ErrorContext,
) -> Self
pub fn validation_with_context( msg: impl Into<String>, context: ErrorContext, ) -> Self
Create a new validation error with structured context
Sourcepub fn configuration_with_context(
msg: impl Into<String>,
context: ErrorContext,
) -> Self
pub fn configuration_with_context( msg: impl Into<String>, context: ErrorContext, ) -> Self
Create a new configuration error with structured context
Sourcepub fn unknown_with_context(
msg: impl Into<String>,
context: ErrorContext,
) -> Self
pub fn unknown_with_context( msg: impl Into<String>, context: ErrorContext, ) -> Self
Create a new unknown error with structured context
Sourcepub fn validation(msg: impl Into<String>) -> Self
pub fn validation(msg: impl Into<String>) -> Self
Create a simple validation error
Sourcepub fn configuration(msg: impl Into<String>) -> Self
pub fn configuration(msg: impl Into<String>) -> Self
Create a simple configuration error
Sourcepub fn network_with_context(
msg: impl Into<String>,
context: ErrorContext,
) -> Self
pub fn network_with_context( msg: impl Into<String>, context: ErrorContext, ) -> Self
Create a network error with context
Sourcepub fn api_with_context(msg: impl Into<String>, context: ErrorContext) -> Self
pub fn api_with_context(msg: impl Into<String>, context: ErrorContext) -> Self
Create an API error with context
Sourcepub fn context(&self) -> Option<&ErrorContext>
pub fn context(&self) -> Option<&ErrorContext>
Extract error context if available
Sourcepub fn is_retryable(&self) -> bool
pub fn is_retryable(&self) -> bool
Returns whether this error is retryable.
Checks Remote.retryable, context.retryable, and standard_code().retryable()
in order of precedence.
Sourcepub fn retry_after(&self) -> Option<Duration>
pub fn retry_after(&self) -> Option<Duration>
Returns the suggested retry delay when available.
For Remote errors, converts retry_after_ms to Duration.
Sourcepub fn error_code(&self) -> Option<StandardErrorCode>
pub fn error_code(&self) -> Option<StandardErrorCode>
Returns the AI-Protocol V2 standard error code when available.
Alias for standard_code for convenience.
Sourcepub fn standard_code(&self) -> Option<StandardErrorCode>
pub fn standard_code(&self) -> Option<StandardErrorCode>
Returns the AI-Protocol V2 standard error code when available.
For Remote errors, derives the code from the error class if not set in context.
Other variants return the standard code from their ErrorContext when present.
Sourcepub fn with_context(self, new_ctx: ErrorContext) -> Self
pub fn with_context(self, new_ctx: ErrorContext) -> Self
Attach or update context to the error
Trait Implementations§
Source§impl Error for Error
impl Error for Error
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
Source§impl From<PipelineError> for Error
impl From<PipelineError> for Error
Source§fn from(source: PipelineError) -> Self
fn from(source: PipelineError) -> Self
Source§impl From<ProtocolError> for Error
impl From<ProtocolError> for Error
Source§fn from(source: ProtocolError) -> Self
fn from(source: ProtocolError) -> Self
Source§impl From<TransportError> for Error
impl From<TransportError> for Error
Source§fn from(source: TransportError) -> Self
fn from(source: TransportError) -> Self
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> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
Source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.