exc_binance/types/
request.rs1use crate::{
2 http::request::{Payload, Rest, RestRequest},
3 websocket::request::WsRequest,
4};
5
6use super::Name;
7
8pub enum Request {
10 Http(RestRequest<Payload>),
12 Ws(WsRequest),
14}
15
16impl Request {
17 pub fn with_rest_payload<T>(payload: T) -> Self
19 where
20 T: Rest,
21 {
22 Self::Http(RestRequest::with_payload(payload))
23 }
24
25 pub fn subscribe(stream: Name) -> Self {
27 Self::Ws(WsRequest::subscribe_stream(stream))
28 }
29
30 pub fn subcribe_main(stream: Name) -> Self {
32 Self::Ws(WsRequest::main_stream(stream))
33 }
34}
35
36impl From<WsRequest> for Request {
37 fn from(req: WsRequest) -> Self {
38 Self::Ws(req)
39 }
40}