1use derive_where::derive_where;
2#[cfg(feature = "nightly")]
3use rustc_macros::{Decodable_NoContext, Encodable_NoContext, HashStable_NoContext};
4use rustc_type_ir_macros::{Lift_Generic, TypeFoldable_Generic, TypeVisitable_Generic};
5
6use crate::Interner;
7
8#[derive_where(Clone, Copy, Hash, PartialEq, Eq; I: Interner)]
9#[derive(TypeVisitable_Generic, TypeFoldable_Generic, Lift_Generic)]
10#[cfg_attr(
11 feature = "nightly",
12 derive(Decodable_NoContext, Encodable_NoContext, HashStable_NoContext)
13)]
14pub enum PatternKind<I: Interner> {
15 Range { start: I::Const, end: I::Const },
16 Or(I::PatList),
17}