discord_client_structs 0.2.0

Discord API/gateway structs with serde support
Documentation
use crate::deserializer::*;
use crate::serializer::*;
use chrono::{DateTime, Utc};
use derive_builder::Builder;
use serde::{Deserialize, Serialize};

#[derive(Debug, Deserialize, Serialize, Clone, Builder, Default)]
#[builder(setter(into, strip_option), default)]
pub struct VoiceState {
    #[serde(deserialize_with = "deserialize_string_to_u64")]
    #[serde(serialize_with = "serialize_u64_as_string")]
    pub user_id: u64,
    pub suppress: bool,
    pub session_id: String,
    pub self_video: bool,
    pub self_mute: bool,
    pub self_deaf: bool,
    #[serde(default)]
    #[serde(deserialize_with = "deserialize_option_iso8601_string_to_date")]
    #[serde(serialize_with = "serialize_option_date_to_iso8601_string")]
    pub request_to_speak_timestamp: Option<DateTime<Utc>>,
    pub mute: bool,
    pub deaf: bool,
    #[serde(deserialize_with = "deserialize_option_string_to_u64")]
    #[serde(serialize_with = "serialize_option_u64_as_string")]
    pub channel_id: Option<u64>, // null on left voice channel event
}