nandi/rustnimpublic Fork 0
7db79919131ab55e23a1730bf78c360e05d9977e
Commits
Clone
git clone https://git.rickub.com/nandi/rustnim.git
git clone ssh://git@rickub.com/nandi/rustnim.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

017-enum-simple.rs · 21 lines · 534 BRust Blame HistoryRaw
Add enums, Option/Result, `?`, and the machinery base16ct needs around them b0ccd80 nandithebull 19h ago1// A C-like enum is a plain Nim enum: it compares and `case`-checks like Rust's.
2#[derive(Clone, Copy, PartialEq, Eq, Debug)]
3enum Error {
4 InvalidEncoding,
5 InvalidLength,
6}
7
8fn describe(e: Error) -> i32 {
9 match e {
10 Error::InvalidEncoding => 1,
11 Error::InvalidLength => 2,
12 }
13}
14
15fn main() {
16 let a = Error::InvalidEncoding;
17 let b = Error::InvalidLength;
18 println!("{} {}", describe(a), describe(b));
19 println!("{:?} {:?}", a, b);
20 println!("{} {}", a == b, a == Error::InvalidEncoding);
21}