[][src]Trait legion_systems::resource::ResourceSet

pub trait ResourceSet: Send + Sync {
    type PreparedResources;
    unsafe fn fetch_unchecked(resources: &Resources) -> Self::PreparedResources;

    fn fetch_mut(resources: &mut Resources) -> Self::PreparedResources { ... }
fn fetch(resources: &Resources) -> Self::PreparedResources
    where
        Self: ReadOnly
, { ... } }

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

Loading content...

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.

Loading content...

Provided methods

fn fetch_mut(resources: &mut Resources) -> Self::PreparedResources

fn fetch(resources: &Resources) -> Self::PreparedResources where
    Self: ReadOnly, 

Loading content...

Implementations on Foreign Types

impl ResourceSet for ()[src]

impl<T: Resource> ResourceSet for Read<T>[src]

impl<T: Resource> ResourceSet for Write<T>[src]

impl<A: ResourceSet> ResourceSet for (A,)[src]

impl<A: ResourceSet, B: ResourceSet> ResourceSet for (A, B)[src]

impl<A: ResourceSet, B: ResourceSet, C: ResourceSet> ResourceSet for (A, B, C)[src]

impl<A: ResourceSet, B: ResourceSet, C: ResourceSet, D: ResourceSet> ResourceSet for (A, B, C, D)[src]

impl<A: ResourceSet, B: ResourceSet, C: ResourceSet, D: ResourceSet, E: ResourceSet> ResourceSet for (A, B, C, D, E)[src]

impl<A: ResourceSet, B: ResourceSet, C: ResourceSet, D: ResourceSet, E: ResourceSet, F: ResourceSet> ResourceSet for (A, B, C, D, E, F)[src]

impl<A: ResourceSet, B: ResourceSet, C: ResourceSet, D: ResourceSet, E: ResourceSet, F: ResourceSet, G: ResourceSet> ResourceSet for (A, B, C, D, E, F, G)[src]

impl<A: ResourceSet, B: ResourceSet, C: ResourceSet, D: ResourceSet, E: ResourceSet, F: ResourceSet, G: ResourceSet, H: ResourceSet> ResourceSet for (A, B, C, D, E, F, G, H)[src]

impl<A: ResourceSet, B: ResourceSet, C: ResourceSet, D: ResourceSet, E: ResourceSet, F: ResourceSet, G: ResourceSet, H: ResourceSet, I: ResourceSet> ResourceSet for (A, B, C, D, E, F, G, H, I)[src]

impl<A: ResourceSet, B: ResourceSet, C: ResourceSet, D: ResourceSet, E: ResourceSet, F: ResourceSet, G: ResourceSet, H: ResourceSet, I: ResourceSet, J: ResourceSet> ResourceSet for (A, B, C, D, E, F, G, H, I, J)[src]

impl<A: ResourceSet, B: ResourceSet, C: ResourceSet, D: ResourceSet, E: ResourceSet, F: ResourceSet, G: ResourceSet, H: ResourceSet, I: ResourceSet, J: ResourceSet, K: ResourceSet> ResourceSet for (A, B, C, D, E, F, G, H, I, J, K)[src]

impl<A: ResourceSet, B: ResourceSet, C: ResourceSet, D: ResourceSet, E: ResourceSet, F: ResourceSet, G: ResourceSet, H: ResourceSet, I: ResourceSet, J: ResourceSet, K: ResourceSet, L: ResourceSet> ResourceSet for (A, B, C, D, E, F, G, H, I, J, K, L)[src]

impl<A: ResourceSet, B: ResourceSet, C: ResourceSet, D: ResourceSet, E: ResourceSet, F: ResourceSet, G: ResourceSet, H: ResourceSet, I: ResourceSet, J: ResourceSet, K: ResourceSet, L: ResourceSet, M: ResourceSet> ResourceSet for (A, B, C, D, E, F, G, H, I, J, K, L, M)[src]

impl<A: ResourceSet, B: ResourceSet, C: ResourceSet, D: ResourceSet, E: ResourceSet, F: ResourceSet, G: ResourceSet, H: ResourceSet, I: ResourceSet, J: ResourceSet, K: ResourceSet, L: ResourceSet, M: ResourceSet, N: ResourceSet> ResourceSet for (A, B, C, D, E, F, G, H, I, J, K, L, M, N)[src]

impl<A: ResourceSet, B: ResourceSet, C: ResourceSet, D: ResourceSet, E: ResourceSet, F: ResourceSet, G: ResourceSet, H: ResourceSet, I: ResourceSet, J: ResourceSet, K: ResourceSet, L: ResourceSet, M: ResourceSet, N: ResourceSet, O: ResourceSet> ResourceSet for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O)[src]

impl<A: ResourceSet, B: ResourceSet, C: ResourceSet, D: ResourceSet, E: ResourceSet, F: ResourceSet, G: ResourceSet, H: ResourceSet, I: ResourceSet, J: ResourceSet, K: ResourceSet, L: ResourceSet, M: ResourceSet, N: ResourceSet, O: ResourceSet, P: ResourceSet> ResourceSet for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P)[src]

impl<A: ResourceSet, B: ResourceSet, C: ResourceSet, D: ResourceSet, E: ResourceSet, F: ResourceSet, G: ResourceSet, H: ResourceSet, I: ResourceSet, J: ResourceSet, K: ResourceSet, L: ResourceSet, M: ResourceSet, N: ResourceSet, O: ResourceSet, P: ResourceSet, Q: ResourceSet> ResourceSet for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q)[src]

impl<A: ResourceSet, B: ResourceSet, C: ResourceSet, D: ResourceSet, E: ResourceSet, F: ResourceSet, G: ResourceSet, H: ResourceSet, I: ResourceSet, J: ResourceSet, K: ResourceSet, L: ResourceSet, M: ResourceSet, N: ResourceSet, O: ResourceSet, P: ResourceSet, Q: ResourceSet, R: ResourceSet> ResourceSet for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R)[src]

impl<A: ResourceSet, B: ResourceSet, C: ResourceSet, D: ResourceSet, E: ResourceSet, F: ResourceSet, G: ResourceSet, H: ResourceSet, I: ResourceSet, J: ResourceSet, K: ResourceSet, L: ResourceSet, M: ResourceSet, N: ResourceSet, O: ResourceSet, P: ResourceSet, Q: ResourceSet, R: ResourceSet, S: ResourceSet> ResourceSet for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S)[src]

impl<A: ResourceSet, B: ResourceSet, C: ResourceSet, D: ResourceSet, E: ResourceSet, F: ResourceSet, G: ResourceSet, H: ResourceSet, I: ResourceSet, J: ResourceSet, K: ResourceSet, L: ResourceSet, M: ResourceSet, N: ResourceSet, O: ResourceSet, P: ResourceSet, Q: ResourceSet, R: ResourceSet, S: ResourceSet, T: ResourceSet> ResourceSet for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T)[src]

impl<A: ResourceSet, B: ResourceSet, C: ResourceSet, D: ResourceSet, E: ResourceSet, F: ResourceSet, G: ResourceSet, H: ResourceSet, I: ResourceSet, J: ResourceSet, K: ResourceSet, L: ResourceSet, M: ResourceSet, N: ResourceSet, O: ResourceSet, P: ResourceSet, Q: ResourceSet, R: ResourceSet, S: ResourceSet, T: ResourceSet, U: ResourceSet> ResourceSet for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U)[src]

impl<A: ResourceSet, B: ResourceSet, C: ResourceSet, D: ResourceSet, E: ResourceSet, F: ResourceSet, G: ResourceSet, H: ResourceSet, I: ResourceSet, J: ResourceSet, K: ResourceSet, L: ResourceSet, M: ResourceSet, N: ResourceSet, O: ResourceSet, P: ResourceSet, Q: ResourceSet, R: ResourceSet, S: ResourceSet, T: ResourceSet, U: ResourceSet, V: ResourceSet> ResourceSet for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V)[src]

impl<A: ResourceSet, B: ResourceSet, C: ResourceSet, D: ResourceSet, E: ResourceSet, F: ResourceSet, G: ResourceSet, H: ResourceSet, I: ResourceSet, J: ResourceSet, K: ResourceSet, L: ResourceSet, M: ResourceSet, N: ResourceSet, O: ResourceSet, P: ResourceSet, Q: ResourceSet, R: ResourceSet, S: ResourceSet, T: ResourceSet, U: ResourceSet, V: ResourceSet, W: ResourceSet> ResourceSet for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W)[src]

impl<A: ResourceSet, B: ResourceSet, C: ResourceSet, D: ResourceSet, E: ResourceSet, F: ResourceSet, G: ResourceSet, H: ResourceSet, I: ResourceSet, J: ResourceSet, K: ResourceSet, L: ResourceSet, M: ResourceSet, N: ResourceSet, O: ResourceSet, P: ResourceSet, Q: ResourceSet, R: ResourceSet, S: ResourceSet, T: ResourceSet, U: ResourceSet, V: ResourceSet, W: ResourceSet, X: ResourceSet> ResourceSet for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X)[src]

impl<A: ResourceSet, B: ResourceSet, C: ResourceSet, D: ResourceSet, E: ResourceSet, F: ResourceSet, G: ResourceSet, H: ResourceSet, I: ResourceSet, J: ResourceSet, K: ResourceSet, L: ResourceSet, M: ResourceSet, N: ResourceSet, O: ResourceSet, P: ResourceSet, Q: ResourceSet, R: ResourceSet, S: ResourceSet, T: ResourceSet, U: ResourceSet, V: ResourceSet, W: ResourceSet, X: ResourceSet, Y: ResourceSet> ResourceSet for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y)[src]

impl<A: ResourceSet, B: ResourceSet, C: ResourceSet, D: ResourceSet, E: ResourceSet, F: ResourceSet, G: ResourceSet, H: ResourceSet, I: ResourceSet, J: ResourceSet, K: ResourceSet, L: ResourceSet, M: ResourceSet, N: ResourceSet, O: ResourceSet, P: ResourceSet, Q: ResourceSet, R: ResourceSet, S: ResourceSet, T: ResourceSet, U: ResourceSet, V: ResourceSet, W: ResourceSet, X: ResourceSet, Y: ResourceSet, Z: ResourceSet> ResourceSet for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z)[src]

Loading content...

Implementors

Loading content...