use crate::{
common::{ItemId, TyDefId},
sem::generic::GenericArgs,
};
use super::CommonTyData;
#[repr(C)]
#[derive(Debug)]
#[cfg_attr(feature = "driver-api", derive(typed_builder::TypedBuilder))]
pub struct FnTy<'ast> {
data: CommonTyData<'ast>,
fn_id: ItemId,
generics: GenericArgs<'ast>,
}
impl<'ast> FnTy<'ast> {
pub fn fn_id(&self) -> ItemId {
self.fn_id
}
pub fn generics(&self) -> &GenericArgs<'ast> {
&self.generics
}
}
super::impl_ty_data!(FnTy<'ast>, Fn);
#[repr(C)]
#[derive(Debug)]
#[cfg_attr(feature = "driver-api", derive(typed_builder::TypedBuilder))]
pub struct ClosureTy<'ast> {
data: CommonTyData<'ast>,
def_id: TyDefId,
generics: GenericArgs<'ast>,
}
impl<'ast> ClosureTy<'ast> {
pub fn def_id(&self) -> TyDefId {
self.def_id
}
pub fn generics(&self) -> &GenericArgs<'ast> {
&self.generics
}
}
super::impl_ty_data!(ClosureTy<'ast>, Closure);