trecs/tools/
resources.rs

1use crate::world::Res;
2#[allow(unused_imports)]
3use crate::world::World;
4
5pub trait ResManager {
6    /// 获取类型对应资源的一个[ResOwner]
7    ///
8    /// 重复获取会报错
9    ///
10    /// 如果原来不存在资源,会为资源创建一个位置
11    fn get_res<T: 'static>(&mut self) -> Res<'_, T>;
12
13    /// 获取类型对应资源的一个[ResOwner]
14    ///
15    /// 如果原来不存在资源,不会为资源创建一个位置,并返回[none]
16    fn try_get_res<T: 'static>(&mut self) -> Option<Res<'_, T>>;
17
18    /// 为类型创建一个位置,准备储存资源
19    ///
20    /// 如果原来的资源存在,什么都不做
21    fn new_res<T: 'static>(&mut self);
22}