pub trait ProtocolDriverHandle<M = UnitTurnProtocol>: Send + Syncwhere
M: TurnProtocol,{
// Required methods
fn prepare_protocol_iteration(
&self,
ctx: DriverContextView<'_, M>,
) -> Vec<DriverAction<M>>;
fn handle_llm_success(
&self,
ctx: DriverContextView<'_, M>,
waiting: WaitingLlmState<M>,
llm_response: LlmResponse,
text_streamed: bool,
) -> Vec<DriverAction<M>>;
fn handle_tool_results(
&self,
ctx: DriverContextView<'_, M>,
completed: Vec<CompletedToolCall>,
) -> Vec<DriverAction<M>>;
fn handle_exec_result(
&self,
ctx: DriverContextView<'_, M>,
waiting: WaitingExecState<M>,
result: Result<ExecResponse, String>,
) -> Vec<DriverAction<M>>;
}Required Methods§
fn prepare_protocol_iteration( &self, ctx: DriverContextView<'_, M>, ) -> Vec<DriverAction<M>>
fn handle_llm_success( &self, ctx: DriverContextView<'_, M>, waiting: WaitingLlmState<M>, llm_response: LlmResponse, text_streamed: bool, ) -> Vec<DriverAction<M>>
fn handle_tool_results( &self, ctx: DriverContextView<'_, M>, completed: Vec<CompletedToolCall>, ) -> Vec<DriverAction<M>>
fn handle_exec_result( &self, ctx: DriverContextView<'_, M>, waiting: WaitingExecState<M>, result: Result<ExecResponse, String>, ) -> Vec<DriverAction<M>>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".