pub struct Store { /* private fields */ }Expand description
组件存储 — 类型安全的注入入口
Implementations§
Source§impl Store
impl Store
Sourcepub fn from_dashmap(inner: DashMap<TypeId, CompRef>) -> Self
pub fn from_dashmap(inner: DashMap<TypeId, CompRef>) -> Self
从 DashMap 创建 Store(trait_impls 为空,需后续填充)
Sourcepub fn into_inner(self) -> DashMap<TypeId, CompRef>
pub fn into_inner(self) -> DashMap<TypeId, CompRef>
获取内部 DashMap 的所有权(消耗 self)
Sourcepub fn insert_cached<T: Any + Send + Sync>(&self, value: T)
pub fn insert_cached<T: Any + Send + Sync>(&self, value: T)
注册缓存实例(Singleton)
Sourcepub fn insert_factory<T: Any + Send + Sync, F>(&self, factory: F)
pub fn insert_factory<T: Any + Send + Sync, F>(&self, factory: F)
注册工厂闭包(Prototype)
每次注入时调用工厂,构造新实例。
T 为组件类型,TypeId 通过 TypeId::of::<T>() 自动获取。
Sourcepub fn inject_or_panic<T: Component>(&self) -> Arc<T> ⓘ
pub fn inject_or_panic<T: Component>(&self) -> Arc<T> ⓘ
注入组件实例(类型安全)— 直接返回 Arc
这是 inject() 的便捷版本,用于不需要错误处理的场景。
Sourcepub fn try_inject<T: Component>(&self) -> Option<Arc<T>>
pub fn try_inject<T: Component>(&self) -> Option<Arc<T>>
尝试注入,失败返回 None
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for Store
impl !UnwindSafe for Store
impl Freeze for Store
impl Send for Store
impl Sync for Store
impl Unpin for Store
impl UnsafeUnpin for Store
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