use crate::{common::Abi, ffi::FfiSlice};
use super::{CommonItemData, ExternItemKind};
#[repr(C)]
#[derive(Debug)]
pub struct ExternBlockItem<'ast> {
data: CommonItemData<'ast>,
abi: Abi,
items: FfiSlice<'ast, ExternItemKind<'ast>>,
}
super::impl_item_data!(ExternBlockItem, ExternBlock);
impl<'ast> ExternBlockItem<'ast> {
pub fn abi(&self) -> Abi {
self.abi
}
pub fn items(&self) -> &[ExternItemKind<'ast>] {
self.items.get()
}
}
#[cfg(feature = "driver-api")]
impl<'ast> ExternBlockItem<'ast> {
pub fn new(data: CommonItemData<'ast>, abi: Abi, items: &'ast [ExternItemKind<'ast>]) -> Self {
Self {
data,
abi,
items: items.into(),
}
}
}