pub trait ServiceMapping<S> where
S: Service,
Self::RequestWrapper: Message,
Self::ResponseWrapper: Message, {
type RequestWrapper;
type ResponseWrapper;
type ClientState;
fn unwrap_request(
wrapped: &Self::RequestWrapper,
sample_info: &SampleInfo
) -> (RmwRequestId, S::Request);
fn wrap_response(
r_id: RmwRequestId,
response: S::Response
) -> (Self::ResponseWrapper, Option<SampleIdentity>);
fn new_client_state(request_sender: GUID) -> Self::ClientState;
fn wrap_request(
state: &mut Self::ClientState,
request: S::Request
) -> (Self::RequestWrapper, Option<RmwRequestId>);
fn request_id_after_wrap(
state: &mut Self::ClientState,
write_result: SampleIdentity
) -> RmwRequestId;
fn unwrap_response(
state: &mut Self::ClientState,
wrapped: Self::ResponseWrapper,
sample_info: SampleInfo
) -> (RmwRequestId, S::Response);
}