use crate::{
ast::ty::TyKind,
common::{BodyId, Mutability},
ffi::FfiOption,
};
use super::CommonItemData;
#[repr(C)]
#[derive(Debug)]
pub struct StaticItem<'ast> {
data: CommonItemData<'ast>,
mutability: Mutability,
body_id: FfiOption<BodyId>,
ty: TyKind<'ast>,
}
super::impl_item_data!(StaticItem, Static);
impl<'ast> StaticItem<'ast> {
pub fn mutability(&self) -> Mutability {
self.mutability
}
pub fn ty(&self) -> TyKind<'ast> {
self.ty
}
pub fn body_id(&self) -> Option<BodyId> {
self.body_id.copy()
}
}
#[cfg(feature = "driver-api")]
impl<'ast> StaticItem<'ast> {
pub fn new(data: CommonItemData<'ast>, mutability: Mutability, body_id: Option<BodyId>, ty: TyKind<'ast>) -> Self {
Self {
data,
mutability,
body_id: body_id.into(),
ty,
}
}
}