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}