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