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
custom_error! {pub ConwayError
InvalidData {reason: String} = "ConwayError->InvalidData->{reason}",
AccessDenied{reason: String} = "ConwayError->AccessDenied->{reason}"
}
pub type ConwayResult<T> = ::std::result::Result<T, ConwayError>;
impl PartialEq for ConwayError {
fn eq(&self, other: &ConwayError) -> bool {
use ConwayError::*;
match *self {
InvalidData{reason: ref self_reason} => {
if let InvalidData{reason: ref other_reason} = *other {
self_reason == other_reason
} else {
false
}
}
AccessDenied{reason: ref self_reason} => {
if let AccessDenied{reason: ref other_reason} = *other {
self_reason == other_reason
} else {
false
}
}
}
}
}