tg_flows/types/
voice.rs

1use mime::Mime;
2use serde::{Deserialize, Serialize};
3
4use crate::types::FileMeta;
5
6/// This object represents a voice note.
7///
8/// [The official docs](https://core.telegram.org/bots/api#voice).
9#[serde_with_macros::skip_serializing_none]
10#[derive(Clone, Debug, Eq, Hash, PartialEq, Serialize, Deserialize)]
11pub struct Voice {
12    /// Metadata of the voice file.
13    #[serde(flatten)]
14    pub file: FileMeta,
15
16    /// Duration of the audio in seconds as defined by sender.
17    pub duration: u32,
18
19    /// MIME type of the file as defined by sender.
20    #[serde(with = "crate::types::non_telegram_types::mime::opt_deser")]
21    pub mime_type: Option<Mime>,
22}