1#[macro_export]
2macro_rules! request_response {
3 ($($request:ident => $response:ident),* $(,)?) => {
4 $(
5 impl RequestResponse for $request {
6 type Response = $response;
7
8 fn extract_response(body: ResponseBody) -> Result<Self::Response, $crate::sdk::SdkError> {
9 match body {
10 ResponseBody::$response(response) => Ok(response),
11 _ => Err("Wrong response type".into()),
12 }
13 }
14 }
15
16 impl From<$request> for RequestBody {
17 fn from(val: $request) -> Self {
18 RequestBody::$request(val)
19 }
20 }
21 )*
22 };
23}