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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
use super::ResourceType;
use std::str::FromStr;
#[derive(Debug, PartialEq, Clone)]
pub struct StringResource;
impl FromStr for StringResource {
type Err = String;
fn from_str(s: &str) -> Result<Self, Self::Err> {
if s == "string" {
Ok(StringResource)
} else {
Err(format!("failed to convert {} to string recource type", s))
}
}
}
impl ResourceType for StringResource {
fn resource_type() -> &'static str {
"string"
}
}
#[derive(Debug, PartialEq, Clone)]
pub struct DrawableResource;
impl FromStr for DrawableResource {
type Err = String;
fn from_str(s: &str) -> Result<Self, Self::Err> {
if s == "drawable" {
Ok(DrawableResource)
} else {
Err(format!("failed to convert {} to drawable resource type", s))
}
}
}
impl ResourceType for DrawableResource {
fn resource_type() -> &'static str {
"drawable"
}
}
#[derive(Debug, PartialEq, Clone)]
pub struct XmlResource;
impl FromStr for XmlResource {
type Err = String;
fn from_str(s: &str) -> Result<Self, Self::Err> {
if s == "xml" {
Ok(XmlResource)
} else {
Err(format!("failed to convert {} to xml resource type", s))
}
}
}
impl ResourceType for XmlResource {
fn resource_type() -> &'static str {
"xml"
}
}
#[derive(Debug, PartialEq, Clone)]
pub struct StyleResource;
impl FromStr for StyleResource {
type Err = String;
fn from_str(s: &str) -> Result<Self, Self::Err> {
if s == "style" {
Ok(StyleResource)
} else {
Err(format!("failed to convert {} to style resource type", s))
}
}
}
impl ResourceType for StyleResource {
fn resource_type() -> &'static str {
"style"
}
}