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}