We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
2 parents 526d79e + 68baac3 commit 2fe1e8aCopy full SHA for 2fe1e8a
src/doc/reference.md
@@ -1413,6 +1413,27 @@ a = Animal::Cat { name: "Spotty".to_string(), weight: 2.7 };
1413
In this example, `Cat` is a _struct-like enum variant_,
1414
whereas `Dog` is simply called an enum variant.
1415
1416
+Enums have a discriminant. You can assign them explicitly:
1417
+
1418
+```
1419
+enum Foo {
1420
+ Bar = 123,
1421
+}
1422
1423
1424
+If a discriminant isn't assigned, they start at zero, and add one for each
1425
+variant, in order.
1426
1427
+You can cast an enum to get this value:
1428
1429
1430
+# enum Foo { Bar = 123 }
1431
+let x = Foo::Bar as u32; // x is now 123u32
1432
1433
1434
+This only works as long as none of the variants have data attached. If
1435
+it were `Bar(i32)`, this is disallowed.
1436
1437
### Constant items
1438
1439
```{.ebnf .gram}
0 commit comments