rustc_type_ir/
generic_arg.rs
1use 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, Eq, 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
18#[derive_where(Clone, Copy, PartialEq, Eq, Debug; I: Interner)]
19#[cfg_attr(
20 feature = "nightly",
21 derive(Decodable_NoContext, Encodable_NoContext, HashStable_NoContext)
22)]
23pub enum TermKind<I: Interner> {
24 Ty(I::Ty),
25 Const(I::Const),
26}