pub trait UpdateServer {
type Request: Clone;
type Update;
type Response;
type Key;
type Error;
// Required methods
fn poll_for_request(
&mut self,
) -> Result<Option<(Self::Key, Self::Request)>, Self::Error>;
fn poll_for_requests(
&mut self,
) -> Vec<Result<(Self::Key, Self::Request), Self::Error>>;
fn send_update(
&mut self,
client_key: Self::Key,
request: &Self::Request,
update: Self::Update,
) -> Result<(), Self::Error>;
fn send_response(
&mut self,
client_key: Self::Key,
request: Self::Request,
response: Self::Response,
) -> Result<(), Self::Error>;
// Provided methods
fn send_updates(
&mut self,
updates: Vec<(Self::Key, &Self::Request, Self::Update)>,
) -> Vec<Result<(), Self::Error>> { ... }
fn send_responses(
&mut self,
responses: Vec<(Self::Key, Self::Request, Self::Response)>,
) -> Vec<Result<(), Self::Error>> { ... }
}
Expand description
A common abstraction for all NComm update servers
Required Associated Types§
Required Methods§
Sourcefn poll_for_request(
&mut self,
) -> Result<Option<(Self::Key, Self::Request)>, Self::Error>
fn poll_for_request( &mut self, ) -> Result<Option<(Self::Key, Self::Request)>, Self::Error>
Check for a singular incoming request from the client
Sourcefn poll_for_requests(
&mut self,
) -> Vec<Result<(Self::Key, Self::Request), Self::Error>>
fn poll_for_requests( &mut self, ) -> Vec<Result<(Self::Key, Self::Request), Self::Error>>
Check for incoming requests from the client