rustigram-types 0.12.0

Telegram Bot API type definitions for rustigram
Documentation
use serde::{Deserialize, Serialize};

use crate::user::User;

/// Service message: a video chat was scheduled.
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[non_exhaustive]
pub struct VideoChatScheduled {
    /// Point in time when the video chat is expected to start, as a Unix timestamp.
    pub start_date: i64,
}

/// Service message: a video chat started.
///
/// Carries no data — its presence is the entire signal. Declared with braces
/// rather than as a unit struct because Telegram sends `{}`, and a unit struct
/// would only deserialize from `null`.
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[non_exhaustive]
pub struct VideoChatStarted {}

/// Service message: a video chat ended.
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[non_exhaustive]
pub struct VideoChatEnded {
    /// Video chat duration in seconds.
    pub duration: u32,
}

/// Service message: new participants were invited to a video chat.
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[non_exhaustive]
pub struct VideoChatParticipantsInvited {
    /// The users invited to the video chat.
    pub users: Vec<User>,
}