Skip to main content

binance_rs_plus/futures/
userstream.rs

1use crate::model::{Success, UserDataStream};
2use crate::client::Client;
3use crate::errors::Result;
4use crate::api::API;
5use crate::api::Futures;
6
7#[derive(Clone)]
8pub struct FuturesUserStream {
9    pub client: Client,
10    pub recv_window: u64, // This field seems unused, but we'll keep it.
11}
12
13impl FuturesUserStream {
14    // User Stream
15    pub async fn start(&self) -> Result<UserDataStream> {
16        self.client
17            .post(API::Futures(Futures::UserDataStream))
18            .await
19    }
20
21    pub async fn keep_alive(&self, listen_key: &str) -> Result<Success> {
22        self.client
23            .put(API::Futures(Futures::UserDataStream), listen_key)
24            .await
25    }
26
27    pub async fn close(&self, listen_key: &str) -> Result<Success> {
28        self.client
29            .delete(API::Futures(Futures::UserDataStream), listen_key)
30            .await
31    }
32}