rskit_media/encoding/
format.rs1use std::sync::Arc;
4
5use serde::{Deserialize, Serialize};
6
7#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
18pub struct Format(Arc<str>);
19
20impl Format {
21 pub fn new(id: impl Into<Arc<str>>) -> Self {
23 Self(id.into())
24 }
25
26 pub fn id(&self) -> &str {
28 &self.0
29 }
30}
31
32impl std::fmt::Display for Format {
33 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
34 f.write_str(&self.0)
35 }
36}
37
38pub const MP4: &str = "mp4";
42pub const MKV: &str = "mkv";
44pub const WEBM: &str = "webm";
46pub const AVI: &str = "avi";
48pub const MOV: &str = "mov";
50pub const FLV: &str = "flv";
52pub const TS: &str = "ts";
54pub const M4V: &str = "m4v";
56pub const WMV: &str = "wmv";
58
59pub const MP3: &str = "mp3";
63pub const WAV: &str = "wav";
65pub const FLAC: &str = "flac";
67pub const OGG: &str = "ogg";
69pub const AAC: &str = "aac";
71pub const M4A: &str = "m4a";
73pub const WMA: &str = "wma";
75pub const OPUS: &str = "opus";
77
78pub const PNG: &str = "png";
82pub const JPEG: &str = "jpeg";
84pub const WEBP: &str = "webp";
86pub const GIF: &str = "gif";
88pub const BMP: &str = "bmp";
90pub const TIFF: &str = "tiff";
92pub const SVG: &str = "svg";
94pub const AVIF: &str = "avif";
96pub const HEIF: &str = "heif";
98
99pub const SRT: &str = "srt";
103pub const VTT: &str = "vtt";
105pub const ASS: &str = "ass";