[−][src]Struct async_ecs::resource::resources::Resources
Implementations
impl Resources
[src]
A Resource container, which provides methods to insert, access and manage the contained resources.
Many methods take &self
which works because everything
is stored with interior mutability. In case you violate
the borrowing rules of Rust (multiple reads xor one write),
you will get a panic.
Resource Ids
Resources are identified by ResourceId
s, which consist of a TypeId
.
pub fn entry<R>(&mut self) -> Entry<'_, R> where
R: Resource,
[src]
R: Resource,
Returns an entry for the resource with type R
.
pub fn insert<R>(&mut self, r: R) where
R: Resource,
[src]
R: Resource,
Inserts a resource into this container. If the resource existed before, it will be overwritten.
Examples
Every type satisfying Any + Send + Sync
automatically
implements Resource
, thus can be added:
struct MyRes(i32);
When you have a resource, simply insert it like this:
use async_ecs::World; let mut world = World::default(); world.insert(MyRes(5));
pub fn remove<R>(&mut self) -> Option<R> where
R: Resource,
[src]
R: Resource,
Removes a resource of type R
from this container and returns its
ownership to the caller. In case there is no such resource in this,
container, None
will be returned.
Use this method with caution; other functions and systems might assume this resource still exists. Thus, only use this if you're sure no system will try to access this resource after you removed it (or else you will get a panic).
pub fn contains<R>(&self) -> bool where
R: Resource,
[src]
R: Resource,
Returns true if the specified resource type R
exists in self
.
pub fn borrow<R>(&self) -> Ref<'_, R> where
R: Resource,
[src]
R: Resource,
Fetches the resource with the specified type T
or panics if it doesn't
exist.
Panics
Panics if the resource doesn't exist. Panics if the resource is being accessed mutably.
pub fn try_borrow<R>(&self) -> Option<Ref<'_, R>> where
R: Resource,
[src]
R: Resource,
Like fetch
, but returns an Option
instead of inserting a default
value in case the resource does not exist.
pub fn borrow_mut<R>(&self) -> RefMut<'_, R> where
R: Resource,
[src]
R: Resource,
Fetches the resource with the specified type T
mutably.
Please see fetch
for details.
Panics
Panics if the resource doesn't exist. Panics if the resource is already being accessed.
pub fn try_borrow_mut<R>(&self) -> Option<RefMut<'_, R>> where
R: Resource,
[src]
R: Resource,
Like fetch_mut
, but returns an Option
instead of inserting a default
value in case the resource does not exist.
pub fn get_mut<R: Resource>(&mut self) -> Option<&mut R>
[src]
Retrieves a resource without fetching, which is cheaper, but only
available with &mut self
.
pub fn get_resource_mut(&mut self, id: ResourceId) -> Option<&mut dyn Resource>
[src]
Retrieves a resource without fetching, which is cheaper, but only
available with &mut self
.
pub fn get_raw(&self, id: &ResourceId) -> Option<&Cell<Box<dyn Resource>>>
[src]
Get raw access to the underlying cell.
Trait Implementations
Auto Trait Implementations
impl !RefUnwindSafe for Resources
impl Send for Resources
impl Sync for Resources
impl Unpin for Resources
impl !UnwindSafe for Resources
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Any for T where
T: Any,
[src]
T: Any,
pub fn get_type_id(&self) -> TypeId
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Resource for T where
T: Any + Send + Sync,
[src]
T: Any + Send + Sync,
impl<T> TryDefault for T where
T: Default,
[src]
T: Default,
pub fn try_default() -> Result<T, String>
[src]
pub fn unwrap_default() -> Self
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,