File tree Expand file tree Collapse file tree 2 files changed +22
-1
lines changed Expand file tree Collapse file tree 2 files changed +22
-1
lines changed Original file line number Diff line number Diff line change @@ -10,7 +10,7 @@ refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503
10
10
refs/tags/release-0.3.1: 495bae036dfe5ec6ceafd3312b4dca48741e845b
11
11
refs/tags/release-0.4: e828ea2080499553b97dfe33b3f4d472b4562ad7
12
12
refs/tags/release-0.5: 7e3bcfbf21278251ee936ad53e92e9b719702d73
13
- refs/heads/auto: 868669f420df66c6acd866391a855200efa4a5d6
13
+ refs/heads/auto: a2e277edf49cb05e79c0346de9a145e4ce6754cb
14
14
refs/heads/servo: af82457af293e2a842ba6b7759b70288da276167
15
15
refs/tags/release-0.6: b4ebcfa1812664df5e142f0134a5faea3918544c
16
16
refs/tags/0.1: b19db808c2793fe2976759b85a355c3ad8c8b336
Original file line number Diff line number Diff line change @@ -1413,6 +1413,27 @@ a = Animal::Cat { name: "Spotty".to_string(), weight: 2.7 };
1413
1413
In this example, ` Cat ` is a _ struct-like enum variant_ ,
1414
1414
whereas ` Dog ` is simply called an enum variant.
1415
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
+
1416
1437
### Constant items
1417
1438
1418
1439
``` {.ebnf .gram}
You can’t perform that action at this time.
0 commit comments