use crate::{
AsContext,
AsContextMut,
RefType,
core::{CoreElementSegment, RawRef},
store::Stored,
};
define_handle! {
struct ElementSegment(u32, Stored) => CoreElementSegment;
}
impl ElementSegment {
pub fn new(
mut ctx: impl AsContextMut,
ty: RefType,
items: impl IntoIterator<Item = RawRef>,
) -> Self {
let entity = CoreElementSegment::new(ty, items);
ctx.as_context_mut()
.store
.inner
.alloc_element_segment(entity)
}
pub fn size(&self, ctx: impl AsContext) -> u32 {
ctx.as_context().store.inner.resolve_element(self).size()
}
}