aboutsummaryrefslogtreecommitdiff
path: root/mingling_core/src/asset/global_resource.rs
diff options
context:
space:
mode:
Diffstat (limited to 'mingling_core/src/asset/global_resource.rs')
-rw-r--r--mingling_core/src/asset/global_resource.rs19
1 files changed, 8 insertions, 11 deletions
diff --git a/mingling_core/src/asset/global_resource.rs b/mingling_core/src/asset/global_resource.rs
index 98a8160..d03c6ea 100644
--- a/mingling_core/src/asset/global_resource.rs
+++ b/mingling_core/src/asset/global_resource.rs
@@ -25,11 +25,8 @@ where
Res: 'static + Default + ResourceMarker + Send + Sync,
Return: Default,
{
- let mut guard = match self.resources.lock() {
- Ok(guard) => guard,
- Err(_) => {
- return Return::default();
- }
+ let Ok(mut guard) = self.resources.lock() else {
+ return Return::default();
};
if let Some(arc_res) = guard
.get_mut(&TypeId::of::<Res>())
@@ -56,12 +53,9 @@ where
Res: 'static + Default + ResourceMarker + Send + Sync,
Return: Into<ChainProcess<C>>,
{
- let mut guard = match self.resources.lock() {
- Ok(guard) => guard,
- Err(_) => {
- let mut default_res = Res::res_default();
- return f(&mut default_res);
- }
+ let Ok(mut guard) = self.resources.lock() else {
+ let mut default_res = Res::res_default();
+ return f(&mut default_res);
};
if let Some(arc_res) = guard
.get_mut(&TypeId::of::<Res>())
@@ -81,6 +75,7 @@ where
}
/// Get an resources by type, returning `Res` if present
+ #[must_use]
pub fn res<Res: 'static + Send + Sync>(&self) -> Option<GlobalResource<Res>> {
let guard = self.resources.lock().ok()?;
let boxed_any = guard.get(&TypeId::of::<Res>())?;
@@ -100,6 +95,7 @@ where
}
/// Get a resource by type, returning `GlobalResource<Res>` or inserting a default
+ #[must_use]
pub fn res_or_default<Res: 'static + Send + Sync + ResourceMarker>(
&self,
) -> GlobalResource<Res> {
@@ -144,6 +140,7 @@ impl<ResType: 'static + Send + Sync> AsRef<ResType> for GlobalResource<ResType>
/// Resource marker trait, types that implement the Clone and Default traits can be considered as resources
pub trait ResourceMarker {
+ #[must_use]
fn res_clone(&self) -> Self;
fn res_default() -> Self;
fn modify<C>(f: impl FnOnce(&mut Self))