pub struct Resources { /* private fields */ }
Expand description
Provides a shared Resource
container.
Implementations§
Source§impl Resources
impl Resources
Sourcepub fn insert<T: Resource>(&mut self, resource: T)
pub fn insert<T: Resource>(&mut self, resource: T)
Inserts a Resource
of type T
into the store.
If an instance of T
already exists, it is quietly replaced with the new instance.
Call Resources::remove()
first, if you want to retrieve the existing instance.
Sourcepub fn remove<T: Resource>(&mut self) -> Option<T>
pub fn remove<T: Resource>(&mut self) -> Option<T>
Removes the instance of type T
from the store, if it exists.
pub fn sync(&mut self) -> ResourcesSync<'_>
Sourcepub fn get<T: Resource>(&self) -> Result<Ref<'_, T>, AccessError>
pub fn get<T: Resource>(&self) -> Result<Ref<'_, T>, AccessError>
Returns an immutable reference to the stored T
, if it exists.
§Errors
- Returns
AccessError::NoSuchResource
if an instance of typeT
does not exist. - Returns
AccessError::AlreadyBorrowed
if there is an existing mutable reference toT
.
Sourcepub fn get_mut<T: Resource>(&self) -> Result<RefMut<'_, T>, AccessError>
pub fn get_mut<T: Resource>(&self) -> Result<RefMut<'_, T>, AccessError>
Returns an immutable reference to the stored T
, if it exists.
§Errors
- Returns
AccessError::NoSuchResource
if an instance of typeT
does not exist. - Returns
AccessError::AlreadyBorrowed
if there is an existing reference toT
.
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
Mutably borrows from an owned value. Read more
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.