pub trait NestedFlowClient {
// Required methods
fn list_roots(
&mut self,
parent_context: &OperationContext,
child_context: &OperationContext,
) -> Result<Vec<RootDefinition>, KernelError>;
fn create_message(
&mut self,
parent_context: &OperationContext,
child_context: &OperationContext,
operation: &CreateMessageOperation,
) -> Result<CreateMessageResult, KernelError>;
fn create_elicitation(
&mut self,
parent_context: &OperationContext,
child_context: &OperationContext,
operation: &CreateElicitationOperation,
) -> Result<CreateElicitationResult, KernelError>;
fn notify_elicitation_completed(
&mut self,
parent_context: &OperationContext,
elicitation_id: &str,
) -> Result<(), KernelError>;
fn notify_resource_updated(
&mut self,
parent_context: &OperationContext,
uri: &str,
) -> Result<(), KernelError>;
fn notify_resources_list_changed(
&mut self,
parent_context: &OperationContext,
) -> Result<(), KernelError>;
// Provided method
fn poll_parent_cancellation(
&mut self,
_parent_context: &OperationContext,
) -> Result<(), KernelError> { ... }
}Expand description
Raw client transport used by the kernel to service nested flows on behalf of a parent request.
The kernel owns lineage, policy, and in-flight bookkeeping. Implementors only move the nested request or notification across the client transport and return the decoded response.