Enum rustc_const_eval::pattern::PatternKind
[−]
[src]
pub enum PatternKind<'tcx> { Wild, Binding { mutability: Mutability, name: Name, mode: BindingMode<'tcx>, var: NodeId, ty: Ty<'tcx>, subpattern: Option<Pattern<'tcx>>, }, Variant { adt_def: &'tcx AdtDef, substs: &'tcx Substs<'tcx>, variant_index: usize, subpatterns: Vec<FieldPattern<'tcx>>, }, Leaf { subpatterns: Vec<FieldPattern<'tcx>>, }, Deref { subpattern: Pattern<'tcx>, }, Constant { value: ConstVal<'tcx>, }, Range { lo: ConstVal<'tcx>, hi: ConstVal<'tcx>, end: RangeEnd, }, Slice { prefix: Vec<Pattern<'tcx>>, slice: Option<Pattern<'tcx>>, suffix: Vec<Pattern<'tcx>>, }, Array { prefix: Vec<Pattern<'tcx>>, slice: Option<Pattern<'tcx>>, suffix: Vec<Pattern<'tcx>>, }, }
🔬 This is a nightly-only experimental API. (
rustc_private
)Variants
Wild
🔬 This is a nightly-only experimental API. (
rustc_private
)Binding
🔬 This is a nightly-only experimental API. (
rustc_private
)x, ref x, x @ P, etc
Fields of Binding
mutability: Mutability | 🔬 This is a nightly-only experimental API. ( rustc_private ) |
name: Name | 🔬 This is a nightly-only experimental API. ( rustc_private ) |
mode: BindingMode<'tcx> | 🔬 This is a nightly-only experimental API. ( rustc_private ) |
var: NodeId | 🔬 This is a nightly-only experimental API. ( rustc_private ) |
ty: Ty<'tcx> | 🔬 This is a nightly-only experimental API. ( rustc_private ) |
subpattern: Option<Pattern<'tcx>> | 🔬 This is a nightly-only experimental API. ( rustc_private ) |
Variant
🔬 This is a nightly-only experimental API. (
rustc_private
)Foo(...) or Foo{...} or Foo, where Foo
is a variant name from an adt with >1 variants
Fields of Variant
adt_def: &'tcx AdtDef | 🔬 This is a nightly-only experimental API. ( rustc_private ) |
substs: &'tcx Substs<'tcx> | 🔬 This is a nightly-only experimental API. ( rustc_private ) |
variant_index: usize | 🔬 This is a nightly-only experimental API. ( rustc_private ) |
subpatterns: Vec<FieldPattern<'tcx>> | 🔬 This is a nightly-only experimental API. ( rustc_private ) |
Leaf
🔬 This is a nightly-only experimental API. (
rustc_private
)(...), Foo(...), Foo{...}, or Foo, where Foo
is a variant name from an adt with 1 variant
Fields of Leaf
subpatterns: Vec<FieldPattern<'tcx>> | 🔬 This is a nightly-only experimental API. ( rustc_private ) |
Deref
🔬 This is a nightly-only experimental API. (
rustc_private
)box P, &P, &mut P, etc
Fields of Deref
subpattern: Pattern<'tcx> | 🔬 This is a nightly-only experimental API. ( rustc_private ) |
Constant
🔬 This is a nightly-only experimental API. (
rustc_private
)Fields of Constant
value: ConstVal<'tcx> | 🔬 This is a nightly-only experimental API. ( rustc_private ) |
Range
🔬 This is a nightly-only experimental API. (
rustc_private
)Fields of Range
lo: ConstVal<'tcx> | 🔬 This is a nightly-only experimental API. ( rustc_private ) |
hi: ConstVal<'tcx> | 🔬 This is a nightly-only experimental API. ( rustc_private ) |
end: RangeEnd | 🔬 This is a nightly-only experimental API. ( rustc_private ) |
Slice
🔬 This is a nightly-only experimental API. (
rustc_private
)matches against a slice, checking the length and extracting elements
Fields of Slice
prefix: Vec<Pattern<'tcx>> | 🔬 This is a nightly-only experimental API. ( rustc_private ) |
slice: Option<Pattern<'tcx>> | 🔬 This is a nightly-only experimental API. ( rustc_private ) |
suffix: Vec<Pattern<'tcx>> | 🔬 This is a nightly-only experimental API. ( rustc_private ) |
Array
🔬 This is a nightly-only experimental API. (
rustc_private
)fixed match against an array, irrefutable
Fields of Array
prefix: Vec<Pattern<'tcx>> | 🔬 This is a nightly-only experimental API. ( rustc_private ) |
slice: Option<Pattern<'tcx>> | 🔬 This is a nightly-only experimental API. ( rustc_private ) |
suffix: Vec<Pattern<'tcx>> | 🔬 This is a nightly-only experimental API. ( rustc_private ) |
Trait Implementations
impl<'tcx> Clone for PatternKind<'tcx>
[src]
fn clone(&self) -> PatternKind<'tcx>
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0
Performs copy-assignment from source
. Read more
impl<'tcx> Debug for PatternKind<'tcx>
[src]
impl<'tcx> PatternFoldable<'tcx> for PatternKind<'tcx>
[src]
fn fold_with<F: PatternFolder<'tcx>>(&self, folder: &mut F) -> Self
🔬 This is a nightly-only experimental API. (
rustc_private
)fn super_fold_with<F: PatternFolder<'tcx>>(&self, folder: &mut F) -> Self
🔬 This is a nightly-only experimental API. (
rustc_private
)