[−][src]Trait legion_systems::resource::ResourceSet
Trait which is implemented for tuples of resources and singular resources. This abstracts fetching resources to allow for ergonomic fetching.
Example:
struct TypeA(usize); struct TypeB(usize); use legion_core::prelude::*; use legion_systems::prelude::*; let mut resources = Resources::default(); resources.insert(TypeA(55)); resources.insert(TypeB(12)); { let (a, mut b) = <(Read<TypeA>, Write<TypeB>)>::fetch_mut(&mut resources); assert_ne!(a.0, b.0); b.0 = a.0; } { let (a, b) = <(Read<TypeA>, Read<TypeB>)>::fetch(&resources); assert_eq!(a.0, b.0); }
Associated Types
type PreparedResources
Required methods
unsafe fn fetch_unchecked(resources: &Resources) -> Self::PreparedResources
Fetches all defined resources, without checking mutability.
Safety
It is up to the end user to validate proper mutability rules across the resources being accessed.
Provided methods
fn fetch_mut(resources: &mut Resources) -> Self::PreparedResources
fn fetch(resources: &Resources) -> Self::PreparedResources where
Self: ReadOnly,
Self: ReadOnly,