pub enum EngineFault {
UnknownTool(String),
BadArgs(String),
Transport(String),
}Expand description
Engine fault: the dispatcher could not even run the tool (unknown tool, bad
arguments, transport down). Surfaces as a non-zero CLI exit; on MCP,
UnknownTool is a JSON-RPC -32602 protocol error and the rest are
isError: true results (A4 mapping in scrybe-mcp-server/src/server.rs).
Distinct from a business ToolError carried inside the outcome
(design §2.2, §5).
Variants§
UnknownTool(String)
No tool with this name is registered.
BadArgs(String)
Arguments failed validation before the handler ran.
Transport(String)
The transport to the live app failed mid-request — socket I/O,
timeouts, oversized/garbled frames, or a malformed JSON-RPC envelope.
The app did NOT answer, so there is no business outcome to report:
this is an engine fault, never a tool_error. (The two conditions the
app does answer for stay business outcomes: no app at all →
no_live_app, and an in-band remote error → app_error.)
Trait Implementations§
Source§impl Debug for EngineFault
impl Debug for EngineFault
Source§impl Display for EngineFault
impl Display for EngineFault
impl Eq for EngineFault
Source§impl Error for EngineFault
impl Error for EngineFault
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 PartialEq for EngineFault
impl PartialEq for EngineFault
impl StructuralPartialEq for EngineFault
Auto Trait Implementations§
impl Freeze for EngineFault
impl RefUnwindSafe for EngineFault
impl Send for EngineFault
impl Sync for EngineFault
impl Unpin for EngineFault
impl UnsafeUnpin for EngineFault
impl UnwindSafe for EngineFault
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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