pub struct Resources { /* private fields */ }Expand description
A resource container, which provides methods to access to the contained resources.
§Resource Ids
Resources are identified by ResourceIds, which consist of a TypeId.
Implementations§
Source§impl Resources
impl Resources
Sourcepub fn insert<R>(&mut self, r: R)where
R: Resource,
pub fn insert<R>(&mut self, r: R)where
R: Resource,
Inserts a resource into this container. If the resource existed before, it will be overwritten.
§Examples
Every type satisfying Any + Debug + Send + Sync automatically implements Resource,
thus can be added:
#[derive(Debug)]
struct MyRes(i32);When you have a resource, simply insert it like this:
use shred::Resources;
let mut res = Resources::new();
res.insert(MyRes(5));Sourcepub fn has_value<R>(&self) -> boolwhere
R: Resource,
pub fn has_value<R>(&self) -> boolwhere
R: Resource,
Returns true if the specified resource type R exists in self.
Sourcepub fn has_value_raw(&self, id: ResourceId) -> bool
pub fn has_value_raw(&self, id: ResourceId) -> bool
Returns true if the specified resource type exists in self.
Sourcepub fn entry<R>(&mut self) -> Entry<'_, R>where
R: Resource,
pub fn entry<R>(&mut self) -> Entry<'_, R>where
R: Resource,
Returns an entry for the resource with type R.
Sourcepub fn fetch<T>(&self) -> Fetch<'_, T>where
T: Resource,
pub fn fetch<T>(&self) -> Fetch<'_, T>where
T: 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.
Sourcepub fn try_fetch<T>(&self) -> Option<Fetch<'_, T>>where
T: Resource,
pub fn try_fetch<T>(&self) -> Option<Fetch<'_, T>>where
T: Resource,
Like fetch, but returns an Option instead of inserting a default value
in case the resource does not exist.
Sourcepub fn fetch_mut<T>(&self) -> FetchMut<'_, T>where
T: Resource,
pub fn fetch_mut<T>(&self) -> FetchMut<'_, T>where
T: 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.
Sourcepub fn try_fetch_mut<T>(&self) -> Option<FetchMut<'_, T>>where
T: Resource,
pub fn try_fetch_mut<T>(&self) -> Option<FetchMut<'_, T>>where
T: Resource,
Like fetch_mut, but returns an Option instead of inserting a default value
in case the resource does not exist.
Sourcepub fn try_fetch_internal(
&self,
id: TypeId,
) -> Option<&TrustCell<Box<dyn Resource>>>
pub fn try_fetch_internal( &self, id: TypeId, ) -> Option<&TrustCell<Box<dyn Resource>>>
Internal function for fetching resources, should only be used if you know what you’re doing.
Sourcepub fn get_mut<T>(&mut self) -> Option<&mut T>where
T: Resource,
pub fn get_mut<T>(&mut self) -> Option<&mut T>where
T: Resource,
Retrieves a resource without fetching, which is cheaper, but only available with
&mut self.
Sourcepub fn get_mut_raw(
&mut self,
id: TypeId,
) -> Option<&mut (dyn Resource + 'static)>
pub fn get_mut_raw( &mut self, id: TypeId, ) -> Option<&mut (dyn Resource + 'static)>
Retrieves a resource without fetching, which is cheaper, but only available with
&mut self.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Resources
impl !RefUnwindSafe for Resources
impl Send for Resources
impl Sync for Resources
impl Unpin for Resources
impl !UnwindSafe for Resources
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> TryDefault for Twhere
T: Default,
impl<T> TryDefault for Twhere
T: Default,
Source§fn try_default() -> Result<T, String>
fn try_default() -> Result<T, String>
Source§fn unwrap_default() -> Self
fn unwrap_default() -> Self
try_default and panics on an error case.