pub struct JsonRpcStreamHandler<W: Write + Send> { /* private fields */ }Expand description
Stream handler that emits JSON-RPC events to a writer.
Each StreamHandler callback produces one JSON line using the event types
defined in ralph_proto::json_rpc. The handler tracks iteration context
and timing to populate event metadata.
Implementations§
Source§impl<W: Write + Send> JsonRpcStreamHandler<W>
impl<W: Write + Send> JsonRpcStreamHandler<W>
Sourcepub fn new(
writer: Arc<Mutex<W>>,
iteration: u32,
hat: Option<String>,
backend: Option<String>,
) -> Self
pub fn new( writer: Arc<Mutex<W>>, iteration: u32, hat: Option<String>, backend: Option<String>, ) -> Self
Creates a new JSON-RPC handler writing to the given writer.
§Arguments
writer- The output sink (wrapped in Arcfor thread safety). iteration- Current iteration number (1-indexed).hat- Current hat ID (e.g., “builder”, “planner”).backend- Backend name (e.g., “claude”, “gemini”).
Sourcepub fn set_iteration(&mut self, iteration: u32)
pub fn set_iteration(&mut self, iteration: u32)
Updates the iteration number for subsequent events.
Sourcepub fn set_backend(&mut self, backend: Option<String>)
pub fn set_backend(&mut self, backend: Option<String>)
Updates the backend for subsequent events.
Trait Implementations§
Source§impl<W: Write + Send> StreamHandler for JsonRpcStreamHandler<W>
impl<W: Write + Send> StreamHandler for JsonRpcStreamHandler<W>
Source§fn on_tool_call(&mut self, name: &str, id: &str, input: &Value)
fn on_tool_call(&mut self, name: &str, id: &str, input: &Value)
Called when Claude invokes a tool. Read more
Source§fn on_tool_result(&mut self, id: &str, output: &str)
fn on_tool_result(&mut self, id: &str, output: &str)
Called when a tool returns results.
Source§fn on_complete(&mut self, result: &SessionResult)
fn on_complete(&mut self, result: &SessionResult)
Called when session completes (verbose only).
Auto Trait Implementations§
impl<W> Freeze for JsonRpcStreamHandler<W>
impl<W> RefUnwindSafe for JsonRpcStreamHandler<W>
impl<W> Send for JsonRpcStreamHandler<W>
impl<W> Sync for JsonRpcStreamHandler<W>
impl<W> Unpin for JsonRpcStreamHandler<W>
impl<W> UnsafeUnpin for JsonRpcStreamHandler<W>
impl<W> UnwindSafe for JsonRpcStreamHandler<W>
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
Mutably borrows from an owned value. Read more
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for 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> 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>
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 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>
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