audio_video_metadata/
types.rs1use std::default::Default;
2use std::time::Duration;
3use {AudioType, VideoType};
4
5#[derive(Clone, Debug, PartialEq)]
6pub struct Size {
7 pub width: u32,
8 pub height: u32,
9}
10
11impl Default for Size {
12 fn default() -> Size {
13 Size {
14 width: 0,
15 height: 0,
16 }
17 }
18}
19
20#[derive(Clone, Debug, PartialEq)]
21pub enum Error {
22 FileError,
23 UnknownFormat,
24 CostumError(String),
25}
26
27impl Error {
28 pub fn error_description(&self) -> String {
31 match self {
32 &Error::FileError => "FileError".to_owned(),
33 &Error::UnknownFormat => "UnknownFormat".to_owned(),
34 &Error::CostumError(ref e) => e.clone(),
35 }
36 }
37}
38
39#[derive(Clone, Debug, PartialEq)]
40pub struct AudioMetadata {
41 pub format: AudioType,
42 pub duration: Option<Duration>,
43 pub audio: Option<String>,
44}
45
46impl Default for AudioMetadata {
47 fn default() -> AudioMetadata {
48 AudioMetadata {
49 format: AudioType::Unknown,
50 duration: None,
51 audio: None,
52 }
53 }
54}
55
56#[derive(Clone, Debug, PartialEq)]
57pub struct VideoMetadata {
58 pub audio: AudioMetadata,
59 pub dimensions: Size,
60 pub format: VideoType,
61 pub video: Option<String>,
62}
63
64impl Default for VideoMetadata {
65 fn default() -> VideoMetadata {
66 VideoMetadata {
67 audio: Default::default(),
68 dimensions: Default::default(),
69 format: VideoType::Unknown,
70 video: None,
71 }
72 }
73}