ferrin_spec/shared/
audio_format.rs1use serde::Deserialize;
4use serde::Serialize;
5
6#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
11pub struct AudioFormat {
12 #[serde(rename = "type")]
14 pub kind: String,
15 #[serde(default, skip_serializing_if = "Option::is_none")]
17 pub rate: Option<u32>,
18}
19
20impl AudioFormat {
21 #[must_use]
23 pub fn new(kind: impl Into<String>) -> Self {
24 Self {
25 kind: kind.into(),
26 rate: None,
27 }
28 }
29
30 #[must_use]
32 pub fn with_rate(kind: impl Into<String>, rate: u32) -> Self {
33 Self {
34 kind: kind.into(),
35 rate: Some(rate),
36 }
37 }
38}