1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#[derive(Clone, PartialEq, Default)]
pub struct AccessToken(String);
impl std::fmt::Debug for AccessToken {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.debug_struct("AccessToken")
.field("token", &"****")
.finish()
}
}
impl AccessToken {
pub fn new<T: ToString>(token: T) -> Self {
Self(token.to_string())
}
}
impl From<String> for AccessToken {
fn from(s: String) -> Self {
Self(s)
}
}
impl From<AccessToken> for String {
fn from(t: AccessToken) -> Self {
t.0
}
}
#[derive(Clone, PartialEq, Debug)]
pub struct ConnectRequest {
pub request_id: super::RequestId,
pub protocol_version: String,
pub node_id: String,
pub ping_interval: chrono::Duration, pub ping_timeout: chrono::Duration, pub project_uuid: Option<String>,
pub access_token: Option<AccessToken>,
}
impl Default for ConnectRequest {
fn default() -> Self {
Self {
request_id: 0.into(),
protocol_version: crate::ISCP_VERSION.to_string(),
node_id: "".to_string(),
ping_interval: chrono::Duration::seconds(10),
ping_timeout: chrono::Duration::seconds(1),
project_uuid: None,
access_token: None,
}
}
}
#[derive(Clone, PartialEq, Default, Debug)]
pub struct ConnectResponse {
pub request_id: super::RequestId,
pub protocol_version: String,
pub result_code: super::ResultCode,
pub result_string: String,
}
#[derive(Clone, PartialEq, Default, Debug)]
pub struct Disconnect {
pub result_code: super::ResultCode,
pub result_string: String,
}