pub enum EngineError {
Http(Error),
Json(Error),
MissingField(&'static str),
InvalidField(&'static str),
Remote(String),
RemoteStatus(u16, String),
Unsupported(&'static str),
}Expand description
Errors produced by the remote multimodal engine.
This error type is intentionally lightweight and is suitable for surfacing from public APIs.
It covers:
- transport failures when calling the remote endpoint,
- JSON serialization/deserialization failures,
- schema mismatches in OpenAI-compatible responses,
- non-success responses returned by the remote provider,
- unsupported operations due to compile-time feature flags.
Variants§
Http(Error)
HTTP-layer failure (request could not be sent, connection error, timeout, etc.).
Json(Error)
JSON serialization/deserialization failure when building or parsing payloads.
MissingField(&'static str)
A required field was missing in a parsed JSON payload.
Example: missing "choices[0].message.content" in an OpenAI-compatible response.
InvalidField(&'static str)
A field was present but had an unexpected type or shape.
Example: "steps" exists but is not an array.
Remote(String)
The remote endpoint returned a non-success status or a server-side error.
The contained string should be a human-readable explanation suitable for logs.
RemoteStatus(u16, String)
The remote endpoint returned a non-success HTTP status with a known status code.
Carries the numeric status code (e.g. 502, 429) so retry logic can distinguish transient/retryable errors from permanent ones.
Unsupported(&'static str)
The operation is not supported in the current build configuration.
Example: calling browser automation without the chrome feature.
Implementations§
Source§impl EngineError
impl EngineError
Sourcepub fn is_retryable_on_different_model(&self) -> bool
pub fn is_retryable_on_different_model(&self) -> bool
Whether this error is transient and warrants retrying on a different model.
Returns true for server errors (500, 502, 503), rate limits (429),
and transport-level failures (timeouts, connection resets).
Trait Implementations§
Source§impl Debug for EngineError
impl Debug for EngineError
Source§impl Display for EngineError
impl Display for EngineError
Source§impl Error for EngineError
impl Error for EngineError
1.30.0 · 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
use the Display impl or to_string()
Source§impl From<Error> for EngineError
impl From<Error> for EngineError
Auto Trait Implementations§
impl Freeze for EngineError
impl !RefUnwindSafe for EngineError
impl Send for EngineError
impl Sync for EngineError
impl Unpin for EngineError
impl UnsafeUnpin for EngineError
impl !UnwindSafe for EngineError
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.