rustc_type_ir/
generic_arg.rs

1use derive_where::derive_where;
2#[cfg(feature = "nightly")]
3use rustc_macros::{HashStable_NoContext, TyDecodable, TyEncodable};
4
5use crate::Interner;
6
7#[derive_where(Clone, Copy, PartialEq, Eq, Debug; I: Interner)]
8#[cfg_attr(feature = "nightly", derive(TyDecodable, TyEncodable, HashStable_NoContext))]
9pub enum GenericArgKind<I: Interner> {
10    Lifetime(I::Region),
11    Type(I::Ty),
12    Const(I::Const),
13}
14
15#[derive_where(Clone, Copy, PartialEq, Eq, Debug; I: Interner)]
16#[cfg_attr(feature = "nightly", derive(TyDecodable, TyEncodable, HashStable_NoContext))]
17pub enum TermKind<I: Interner> {
18    Ty(I::Ty),
19    Const(I::Const),
20}