More accurate "GatewayHello::default()" (#534)

Replaces the derived `std::default::Default` with

```rs
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,
        }
    }
}
```
This commit is contained in:
Flori 2024-07-26 23:37:28 +02:00 committed by GitHub
commit 274b9ab0ca
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 24 additions and 2 deletions

View File

@ -7,16 +7,38 @@ use chorus_macros::WebSocketEvent;
use serde::{Deserialize, Serialize};
/// 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 op: i32,
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;
pub struct HelloData {
/// How often a client should send heartbeats, in milliseconds
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,
}
}
}