Struct hobo::prelude::Storage

source ·
pub struct Storage<Component: 'static> {
    pub data: HashMap<Entity, Component>,
    pub modified: HashSet<Entity>,
    pub on_added: Option<fn(_: &mut Storage<Component>, _: Entity)>,
    pub on_modified: Option<fn(_: &mut Storage<Component>, _: Entity)>,
    pub on_removed: Option<fn(_: &mut Storage<Component>, _: Entity, _: Component)>,
}

Fields§

§data: HashMap<Entity, Component>§modified: HashSet<Entity>§on_added: Option<fn(_: &mut Storage<Component>, _: Entity)>§on_modified: Option<fn(_: &mut Storage<Component>, _: Entity)>§on_removed: Option<fn(_: &mut Storage<Component>, _: Entity, _: Component)>

Implementations§

source§

impl<Component: 'static> Storage<Component>

source

pub fn has(&self, entity: impl AsEntity) -> bool

source

pub fn remove(&mut self, entity: impl AsEntity)

source

pub fn get_mut_or_default(&mut self, entity: impl AsEntity) -> &mut Componentwhere Component: Default,

source

pub fn add(&mut self, entity: impl AsEntity, component: Component)

source

pub fn get(&self, entity: impl AsEntity) -> Option<&Component>

source

pub fn get_mut(&mut self, entity: impl AsEntity) -> Option<&mut Component>

source

pub fn get_mut_or( &mut self, entity: impl AsEntity, f: impl FnOnce() -> Component ) -> &mut Component

Trait Implementations§

source§

impl<Component> Default for Storage<Component>

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl<Component: 'static> DynStorage for Storage<Component>

source§

fn dyn_has(&self, entity: Entity) -> bool

source§

fn dyn_remove(&mut self, entity: Entity)

source§

fn flush(&mut self)

Auto Trait Implementations§

§

impl<Component> RefUnwindSafe for Storage<Component>where Component: RefUnwindSafe,

§

impl<Component> Send for Storage<Component>where Component: Send,

§

impl<Component> Sync for Storage<Component>where Component: Sync,

§

impl<Component> Unpin for Storage<Component>where Component: Unpin,

§

impl<Component> UnwindSafe for Storage<Component>where Component: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> AsAny for Twhere T: Any,

source§

fn as_any(&self) -> &(dyn Any + 'static)

source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

source§

fn type_name(&self) -> &'static str

Gets the type name of self
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> DefaultResource for Twhere T: Default + 'static,

source§

fn resource_or_default<'a>( ) -> OwningRef<StorageGuard<Self, StorageRef<'a, Self>>, Self>where Self: Sized,

source§

fn resource_mut_or_default<'a>( ) -> OwningRefMut<StorageGuardMut<Self, StorageRefMut<'a, Self>>, Self>where Self: Sized,

source§

impl<T> Downcast for Twhere T: AsAny + ?Sized,

source§

fn is<T>(&self) -> boolwhere T: AsAny,

Returns true if the boxed type is the same as T. Read more
source§

fn downcast_ref<T>(&self) -> Option<&T>where T: AsAny,

Forward to the method defined on the type Any.
source§

fn downcast_mut<T>(&mut self) -> Option<&mut T>where T: AsAny,

Forward to the method defined on the type Any.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Resource for Twhere T: 'static,

source§

fn register_resource(self)where Self: Sized,

source§

fn resource<'a>() -> OwningRef<StorageGuard<Self, StorageRef<'a, Self>>, Self>where Self: Sized,

source§

fn resource_mut<'a>( ) -> OwningRefMut<StorageGuardMut<Self, StorageRefMut<'a, Self>>, Self>where Self: Sized,

source§

fn try_resource<'a>( ) -> Option<OwningRef<StorageGuard<Self, StorageRef<'a, Self>>, Self>>where Self: Sized,

source§

fn try_resource_mut<'a>( ) -> Option<OwningRefMut<StorageGuardMut<Self, StorageRefMut<'a, Self>>, Self>>where Self: Sized,

source§

fn remove_resource()where Self: Sized,

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> Erased for T