Macro enumset::enum_set [−][src]
macro_rules! enum_set {
($(|) *) => { ... };
($value : path $(|) *) => { ... };
($value : path | $($rest : path) | * $(|) *) => { ... };
}
Expand description
Creates a EnumSet literal, which can be used in const contexts.
The syntax used is enum_set!(Type::A | Type::B | Type::C)
. Each variant must be of the same
type, or a error will occur at compile-time.
This macro accepts trailing |
s to allow easier use in other macros.
Examples
const CONST_SET: EnumSet<Enum> = enum_set!(Enum::A | Enum::B);
assert_eq!(CONST_SET, Enum::A | Enum::B);
This macro is strongly typed. For example, the following will not compile:
ⓘ
let type_error = enum_set!(Enum::A | Enum2::B);