slack_morphism/socket_mode/
wss_client_id.rs

1use rsb_derive::Builder;
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Eq, PartialEq, Hash, Clone, Serialize, Deserialize, Builder)]
5pub struct SlackSocketModeWssClientId {
6    pub initial_index: u32,
7    pub token_index: u32,
8    pub reconnected: u64,
9}
10
11impl SlackSocketModeWssClientId {
12    pub fn new_reconnected_id(&self) -> Self {
13        if self.reconnected < 64 {
14            Self {
15                reconnected: self.reconnected + 1,
16                ..self.clone()
17            }
18        } else {
19            Self {
20                reconnected: 0,
21                ..self.clone()
22            }
23        }
24    }
25}
26
27#[allow(clippy::to_string_trait_impl)]
28impl ToString for SlackSocketModeWssClientId {
29    fn to_string(&self) -> String {
30        format!(
31            "{}/{}/{}",
32            self.initial_index, self.token_index, self.reconnected
33        )
34    }
35}