More accurate "GatewayHello::default()"

This commit is contained in:
bitfl0wer 2024-07-26 23:28:23 +02:00
parent 4292ab88e9
commit d4f6a7e98a
No known key found for this signature in database
GPG Key ID: 0ACD574FCF5226CF
1 changed files with 24 additions and 2 deletions

View File

@ -7,16 +7,38 @@ use chorus_macros::WebSocketEvent;
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
/// Received on gateway init, tells the client how often to send heartbeats; /// Received on gateway init, tells the client how often to send heartbeats;
#[derive(Debug, Default, Deserialize, Serialize, Clone, PartialEq, Eq, WebSocketEvent, Copy, Hash, PartialOrd, Ord)] #[derive(
Debug, Deserialize, Serialize, Clone, PartialEq, Eq, WebSocketEvent, Copy, Hash, PartialOrd, Ord,
)]
pub struct GatewayHello { pub struct GatewayHello {
pub op: i32, pub op: i32,
pub d: HelloData, pub d: HelloData,
} }
#[derive(Debug, Default, Deserialize, Serialize, Clone, PartialEq, Eq, Copy, WebSocketEvent, Hash, PartialOrd, Ord)] #[derive(
Debug, Deserialize, Serialize, Clone, PartialEq, Eq, Copy, WebSocketEvent, Hash, PartialOrd, Ord,
)]
/// Contains info on how often the client should send heartbeats to the server; /// Contains info on how often the client should send heartbeats to the server;
pub struct HelloData { pub struct HelloData {
/// How often a client should send heartbeats, in milliseconds /// How often a client should send heartbeats, in milliseconds
pub heartbeat_interval: u64, pub heartbeat_interval: u64,
} }
impl std::default::Default for GatewayHello {
fn default() -> Self {
Self {
// "HELLO" opcode is 10
op: 10,
d: Default::default(),
}
}
}
impl std::default::Default for HelloData {
fn default() -> Self {
Self {
// Discord docs mention 45000 seconds - discord.sex mentions 41250. Defaulting to 45s
heartbeat_interval: 45000,
}
}
}