Trait RequestResponse
pub trait RequestResponse: Send + Sync {
// Required methods
fn send_request(
&self,
request: Message,
timeout: Duration,
) -> Result<Message, NerveError>;
fn handle_response(
&self,
request_id: u64,
response: Message,
) -> Result<(), NerveError>;
fn cleanup_expired_requests(&self) -> Result<usize, NerveError>;
fn pending_request_count(&self) -> Result<usize, NerveError>;
fn is_request_pending(&self, request_id: u64) -> Result<bool, NerveError>;
fn cancel_request(&self, request_id: u64) -> Result<bool, NerveError>;
}Expand description
Request-response interface
Required Methods§
fn send_request(
&self,
request: Message,
timeout: Duration,
) -> Result<Message, NerveError>
fn send_request( &self, request: Message, timeout: Duration, ) -> Result<Message, NerveError>
Send a request and wait for response
fn handle_response(
&self,
request_id: u64,
response: Message,
) -> Result<(), NerveError>
fn handle_response( &self, request_id: u64, response: Message, ) -> Result<(), NerveError>
Handle an incoming response
fn cleanup_expired_requests(&self) -> Result<usize, NerveError>
fn cleanup_expired_requests(&self) -> Result<usize, NerveError>
Clean up expired requests
fn pending_request_count(&self) -> Result<usize, NerveError>
fn pending_request_count(&self) -> Result<usize, NerveError>
Get pending request count
fn is_request_pending(&self, request_id: u64) -> Result<bool, NerveError>
fn is_request_pending(&self, request_id: u64) -> Result<bool, NerveError>
Check if a request is still pending
fn cancel_request(&self, request_id: u64) -> Result<bool, NerveError>
fn cancel_request(&self, request_id: u64) -> Result<bool, NerveError>
Cancel a pending request