pub struct BidirectionalContext {
pub direction: CommunicationDirection,
pub initiator: CommunicationInitiator,
pub expects_response: bool,
pub parent_request_id: Option<String>,
pub request_type: Option<String>,
pub server_id: Option<String>,
pub correlation_id: String,
pub metadata: HashMap<String, Value>,
}
Expand description
Enhanced context for bidirectional MCP communication
Fields§
§direction: CommunicationDirection
Communication direction
initiator: CommunicationInitiator
Initiator of the request
expects_response: bool
Whether response is expected
parent_request_id: Option<String>
Parent request ID (for server-initiated requests in response to client requests)
request_type: Option<String>
Request type for validation
server_id: Option<String>
Server ID for server-initiated requests
correlation_id: String
Correlation ID for request tracking
metadata: HashMap<String, Value>
Bidirectional communication metadata
Implementations§
Source§impl BidirectionalContext
impl BidirectionalContext
Sourcepub fn new(
direction: CommunicationDirection,
initiator: CommunicationInitiator,
) -> Self
pub fn new( direction: CommunicationDirection, initiator: CommunicationInitiator, ) -> Self
Create a new bidirectional context
Sourcepub fn with_direction(self, direction: CommunicationDirection) -> Self
pub fn with_direction(self, direction: CommunicationDirection) -> Self
Track request direction for proper routing
Sourcepub fn with_request_type(self, request_type: String) -> Self
pub fn with_request_type(self, request_type: String) -> Self
Set the request type
Sourcepub fn validate_direction(&self) -> Result<(), String>
pub fn validate_direction(&self) -> Result<(), String>
Validate request direction against protocol rules
Trait Implementations§
Source§impl Clone for BidirectionalContext
impl Clone for BidirectionalContext
Source§fn clone(&self) -> BidirectionalContext
fn clone(&self) -> BidirectionalContext
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Debug for BidirectionalContext
impl Debug for BidirectionalContext
Source§impl<'de> Deserialize<'de> for BidirectionalContext
impl<'de> Deserialize<'de> for BidirectionalContext
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for BidirectionalContext
impl RefUnwindSafe for BidirectionalContext
impl Send for BidirectionalContext
impl Sync for BidirectionalContext
impl Unpin for BidirectionalContext
impl UnwindSafe for BidirectionalContext
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