origin_sdk/
macros.rs

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}