doc.rust-lang.org/core/mem/fn.discriminant.html
Preview meta tags from the doc.rust-lang.org website.
Linked Hostnames
1General Meta Tags
6- titlediscriminant in core::mem - Rust
- charsetutf-8
- viewportwidth=device-width, initial-scale=1.0
- generatorrustdoc
- descriptionReturns a value uniquely identifying the enum variant in `v`.
Link Tags
4- alternate icon../../static.files/favicon-32x32-6580c154.png
- icon../../static.files/favicon-044be391.svg
- stylesheet../../static.files/normalize-9960930a.css
- stylesheet../../static.files/rustdoc-84e720fa.css
Links
3- https://play.rust-lang.org/?code=%23!%5Ballow(unused)%5D%0Afn+main()+%7B%0A++++%23%5Brepr(u8)%5D%0A++++enum+Enum+%7B%0A++++++++Unit,%0A++++++++Tuple(bool),%0A++++++++Struct+%7B+a:+bool+%7D,%0A++++%7D%0A++++%0A++++impl+Enum+%7B%0A++++++++fn+discriminant(%26self)+-%3E+u8+%7B%0A++++++++++++//+SAFETY:+Because+%60Self%60+is+marked+%60repr(u8)%60,+its+layout+is+a+%60repr(C)%60+%60union%60%0A++++++++++++//+between+%60repr(C)%60+structs,+each+of+which+has+the+%60u8%60+discriminant+as+its+first%0A++++++++++++//+field,+so+we+can+read+the+discriminant+without+offsetting+the+pointer.%0A++++++++++++unsafe+%7B+*%3C*const+_%3E::from(self).cast::%3Cu8%3E()+%7D%0A++++++++%7D%0A++++%7D%0A++++%0A++++let+unit_like+=+Enum::Unit;%0A++++let+tuple_like+=+Enum::Tuple(true);%0A++++let+struct_like+=+Enum::Struct+%7B+a:+false+%7D;%0A++++assert_eq!(0,+unit_like.discriminant());%0A++++assert_eq!(1,+tuple_like.discriminant());%0A++++assert_eq!(2,+struct_like.discriminant());%0A%7D&edition=2024
- https://play.rust-lang.org/?code=%23!%5Ballow(unused)%5D%0Afn+main()+%7B%0A++++enum+Enum+%7B%0A++++++++Foo,%0A++++++++Bar,%0A++++++++Baz,%0A++++%7D%0A++++%0A++++assert_eq!(0,+Enum::Foo+as+isize);%0A++++assert_eq!(1,+Enum::Bar+as+isize);%0A++++assert_eq!(2,+Enum::Baz+as+isize);%0A%7D&edition=2024
- https://play.rust-lang.org/?code=%23!%5Ballow(unused)%5D%0Afn+main()+%7B%0A++++use+std::mem;%0A++++%0A++++enum+Foo+%7B+A(%26'static+str),+B(i32),+C(i32)+%7D%0A++++%0A++++assert_eq!(mem::discriminant(%26Foo::A(%22bar%22)),+mem::discriminant(%26Foo::A(%22baz%22)));%0A++++assert_eq!(mem::discriminant(%26Foo::B(1)),+mem::discriminant(%26Foo::B(2)));%0A++++assert_ne!(mem::discriminant(%26Foo::B(3)),+mem::discriminant(%26Foo::C(3)));%0A%7D&edition=2024