Macro define_request

Source
macro_rules! define_request {
    (
        Name => $name: ident;
        Product => $product: expr;
        Method => $method: expr;
        Endpoint => $endpoint: expr;
        Signed => $signed: expr;
        Request => { $($req_def:tt)* };
        Response => { $($resp_def:tt)* };
    ) => { ... };
    (
        Name => $name: ident;
        Product => $product: expr;
        Method => $method: expr;
        Endpoint => $endpoint: expr;
        Keyed => $keyed: expr;
        Signed => $signed: expr;
        Request => { $($req_def:tt)* };
        Response => { $($resp_def:tt)* };
    ) => { ... };
    (
        Name => $name: ident;
        Product => $product: expr;
        Method => $method: expr;
        Endpoint => $endpoint: expr;
        Signed => $signed: expr;
        Request => { $($req_def:tt)* };
        Response => $resp_ty: ty;
    ) => { ... };
    (
        Name => $name: ident;
        Product => $product: expr;
        Method => $method: expr;
        Endpoint => $endpoint: expr;
        Keyed => $keyed: expr;
        Signed => $signed: expr;
        Request => { $($req_def:tt)* };
        Response => $resp_ty: ty;
    ) => { ... };
}