1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
// A C-like enum is a plain Nim enum: it compares and `case`-checks like Rust's.
#[derive(Clone, Copy, PartialEq, Eq, Debug)]
enum Error {
InvalidEncoding,
InvalidLength,
}
fn describe(e: Error) -> i32 {
match e {
Error::InvalidEncoding => 1,
Error::InvalidLength => 2,
}
}
fn main() {
let a = Error::InvalidEncoding;
let b = Error::InvalidLength;
println!("{} {}", describe(a), describe(b));
println!("{:?} {:?}", a, b);
println!("{} {}", a == b, a == Error::InvalidEncoding);
}
|