type_alias_enum_variants
The tracking issue for this feature is: #49683
The type_alias_enum_variants
feature enables the use of variants on type
aliases that refer to enums, as both a constructor and a pattern. That is,
it allows for the syntax EnumAlias::Variant
, which behaves exactly the same
as Enum::Variant
(assuming that EnumAlias
is an alias for some enum type
Enum
).
Note that since Self
exists as a type alias, this feature also enables the
use of the syntax Self::Variant
within an impl block for an enum type.
#![feature(type_alias_enum_variants)]
enum Foo {
Bar(i32),
Baz { i: i32 },
}
type Alias = Foo;
fn main() {
let t = Alias::Bar(0);
let t = Alias::Baz { i: 0 };
match t {
Alias::Bar(_i) => {}
Alias::Baz { i: _i } => {}
}
}