forked from manning-liveproject/http-server-lp-author
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.rs
62 lines (52 loc) · 1.39 KB
/
main.rs
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
#[derive(Debug)]
#[derive(PartialEq)]
enum Lang {
English,
Spanish,
Chinese,
Texan,
Dutch,
}
#[derive(Debug)]
struct Greeting {
message: String,
lang: Lang,
}
struct Greetings {
greetings: Vec<Greeting>,
}
impl Greetings {
fn new() -> Greetings {
Greetings {
greetings: Vec::new()
}
}
fn add(self: &mut Greetings, greeting: Greeting) {
self.greetings.push(greeting);
}
fn find(self: &Greetings, lang: Lang) -> Result<&Greeting, String> {
for g in &self.greetings {
if g.lang == lang {
return Ok(g);
}
}
Err(String::from("Not found"))
}
fn all(self: &Greetings) -> &Vec<Greeting> {
&self.greetings
}
}
fn main() {
let mut v: Greetings = Greetings::new();
v.add(Greeting { lang: Lang::English, message: String::from("Hello WasmEdge!") });
v.add(Greeting { lang: Lang::Spanish, message: String::from("Hola WasmEdge!") });
v.add(Greeting { lang: Lang::Texan, message: String::from("Howdy WasmEdge!") });
v.add(Greeting { lang: Lang::Chinese, message: String::from("WasmEdge 你好!") });
v.add(Greeting { lang: Lang::Dutch, message: String::from("Hallo WasmEdge!") });
for e in v.all() {
println!("{:?} {}", e.lang, e.message);
}
println!("Spanish: {:?}", v.find(Lang::Spanish).unwrap());
println!("Spanish: {:?}", v.find(Lang::Spanish).unwrap());
println!("Texan: {:?}", v.find(Lang::Texan).unwrap());
}