use concinnity_core::ecs::RuntimeComponent;
pub(crate) type Inner = concinnity_core::ecs::World;
#[derive(Default)]
pub struct World {
inner: Inner,
}
impl core::fmt::Debug for World {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
f.debug_struct("World").finish_non_exhaustive()
}
}
impl World {
pub fn new() -> Self {
Self::default()
}
#[cfg_attr(feature = "cook", doc = " See [`cook`](mod@crate::cook).")]
pub fn add_component<C: RuntimeComponent>(&mut self, component: C) {
self.inner.add_component(component);
}
#[cfg(feature = "cook")]
pub(crate) fn from_inner(inner: Inner) -> Self {
Self { inner }
}
pub(crate) fn into_inner(self) -> Inner {
self.inner
}
#[cfg(test)]
pub(crate) fn inner(&self) -> &Inner {
&self.inner
}
}