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.
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 Methods§
fn poll_parent_cancellation( &mut self, _parent_context: &OperationContext, ) -> Result<(), KernelError>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".