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
|
// Result-returning functions, Ok/Err construction, and matching on both.
#[derive(Debug, PartialEq)]
enum Error {
TooBig,
}
fn halve(n: i32) -> Result<i32, Error> {
if n > 100 {
Err(Error::TooBig)
} else {
Ok(n / 2)
}
}
fn main() {
for n in [10, 200] {
match halve(n) {
Ok(v) => println!("ok {}", v),
Err(e) => println!("err {:?}", e),
}
}
println!("{:?}", halve(8));
println!("{}", halve(8).unwrap());
println!("{} {}", halve(8).is_ok(), halve(500).is_err());
}
|