openlimits_binance/client/
userstream.rs1use super::BaseClient;
2use crate::model::Success;
3use crate::model::UserDataStream;
4use super::shared::Result;
5
6static USER_DATA_STREAM: &str = "/api/v3/userDataStream";
7
8impl BaseClient {
9 pub async fn user_stream_start(&self) -> Result<UserDataStream> {
11 let user_data_stream = self.transport.post::<_, ()>(USER_DATA_STREAM, None).await?;
12 Ok(user_data_stream)
13 }
14
15 pub async fn user_stream_keep_alive(&self, listen_key: &str) -> Result<Success> {
17 let success = self
18 .transport
19 .put(
20 USER_DATA_STREAM,
21 Some(&vec![("listen_key", listen_key.to_string())]),
22 )
23 .await?;
24 Ok(success)
25 }
26
27 pub async fn user_stream_close(&self, listen_key: &str) -> Result<Success> {
28 let success = self
29 .transport
30 .delete(
31 USER_DATA_STREAM,
32 Some(&vec![("listen_key", listen_key.to_string())]),
33 )
34 .await?;
35 Ok(success)
36 }
37}