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
#[derive(Clone, Copy)]
pub struct HeartBeat(pub u32, pub u32);
#[derive(Clone, Copy)]
pub struct Credentials<'a>(pub &'a str, pub &'a str);
#[derive(Clone)]
pub struct OwnedCredentials {
pub login: String,
pub passcode: String,
}
impl OwnedCredentials {
pub fn from<'a>(credentials: Credentials<'a>) -> OwnedCredentials {
OwnedCredentials {
login: credentials.0.to_owned(),
passcode: credentials.1.to_owned(),
}
}
}
fn heartbeat(client_ms: u32, server_ms: u32) -> u32 {
if client_ms == 0 || server_ms == 0 {
0
} else {
client_ms.max(server_ms)
}
}
pub fn select_heartbeat(
client_tx_ms: u32,
client_rx_ms: u32,
server_tx_ms: u32,
server_rx_ms: u32,
) -> (u32, u32) {
(
heartbeat(client_tx_ms, server_tx_ms),
heartbeat(client_rx_ms, server_rx_ms),
)
}