rustc_type_ir/
generic_arg.rs1use derive_where::derive_where;
2#[cfg(feature = "nightly")]
3use rustc_macros::{Decodable_NoContext, Encodable_NoContext, HashStable_NoContext};
4
5use crate::Interner;
6
7#[derive_where(Clone, Copy, PartialEq, Debug; I: Interner)]
8#[cfg_attr(
9 feature = "nightly",
10 derive(Decodable_NoContext, Encodable_NoContext, HashStable_NoContext)
11)]
12pub enum GenericArgKind<I: Interner> {
13 Lifetime(I::Region),
14 Type(I::Ty),
15 Const(I::Const),
16}
17
18impl<I: Interner> Eq for GenericArgKind<I> {}
19
20#[derive_where(Clone, Copy, PartialEq, Debug; I: Interner)]
21#[cfg_attr(
22 feature = "nightly",
23 derive(Decodable_NoContext, Encodable_NoContext, HashStable_NoContext)
24)]
25pub enum TermKind<I: Interner> {
26 Ty(I::Ty),
27 Const(I::Const),
28}
29
30impl<I: Interner> Eq for TermKind<I> {}