Function std::mem::discriminant
pub fn discriminant<T>(v: &T) -> Discriminant<T>
Returns a value uniquely identifying the enum variant in v
.
If T
is not an enum, calling this function will not result in undefined behavior, but the return value is unspecified.
Stability
The discriminant of an enum variant may change if the enum definition changes. A discriminant of some variant will not change between compilations with the same compiler.
Examples
This can be used to compare enums that carry data, while disregarding the actual data:
use std::mem; enum Foo { A(&'static str), B(i32), C(i32) } assert_eq!(mem::discriminant(&Foo::A("bar")), mem::discriminant(&Foo::A("baz"))); assert_eq!(mem::discriminant(&Foo::B(1)), mem::discriminant(&Foo::B(2))); assert_ne!(mem::discriminant(&Foo::B(3)), mem::discriminant(&Foo::C(3)));
© 2010 The Rust Project Developers
Licensed under the Apache License, Version 2.0 or the MIT license, at your option.
https://doc.rust-lang.org/std/mem/fn.discriminant.html