[][src]Trait akashi::Component

pub trait Component<T>: Downcast { }

Represents a Component within Akashi's Entity-Component-System architecture.

Components are used to hold data and provide functionality for Entities, such as Players and Cards.

This trait doesn't provide anything on its own, but it does allow a type to interact with the rest of the ECS code.

Methods

impl<T> dyn Component<T> where
    T: Any + 'static, 

pub fn is<__T: Component<T>>(&self) -> bool

Returns true if the trait object wraps an object of type __T.

pub fn downcast<__T: Component<T>>(
    self: Box<Self>
) -> Result<Box<__T>, Box<Self>>

Returns a boxed object from a boxed trait object if the underlying object is of type __T. Returns the original boxed trait if it isn't.

pub fn downcast_rc<__T: Component<T>>(
    self: Rc<Self>
) -> Result<Rc<__T>, Rc<Self>>

Returns an Rc-ed object from an Rc-ed trait object if the underlying object is of type __T. Returns the original Rc-ed trait if it isn't.

pub fn downcast_ref<__T: Component<T>>(&self) -> Option<&__T>

Returns a reference to the object within the trait object if it is of type __T, or None if it isn't.

pub fn downcast_mut<__T: Component<T>>(&mut self) -> Option<&mut __T>

Returns a mutable reference to the object within the trait object if it is of type __T, or None if it isn't.

Implementations on Foreign Types

impl Component<Player> for Vec<Snowflake>[src]

Loading content...

Implementors

impl Component<Card> for AttachedCardType[src]

impl Component<Player> for Inventory[src]

impl Component<Player> for Resource[src]

impl<E: Entity + 'static> Component<E> for Snowflake[src]

Loading content...