Trait shred::SystemData [] [src]

pub trait SystemData<'a> {
    fn setup(res: &mut Resources);
fn fetch(res: &'a Resources) -> Self;
fn reads() -> Vec<ResourceId>;
fn writes() -> Vec<ResourceId>; }

A struct implementing system data indicates that it bundles some resources which are required for the execution.

Required Methods

Sets up Resources for fetching this system data.

Creates a new resource bundle by fetching the required resources from the Resources struct.

Contract

Only fetch the resources you returned from reads / writes!

Panics

This function may panic if the above contract is violated. This function may panic if the resource doesn't exist. This is only the case if either setup was not called or it didn't insert any fallback value.

A list of ResourceIds the bundle needs read access to in order to build the target resource bundle.

Contract

Exactly return the dependencies you're going to fetch! Doing otherwise will cause a data race.

This method is only executed once, thus the returned value may never change (otherwise it has no effect).

A list of ResourceIds the bundle needs write access to in order to build the target resource bundle.

Contract

Exactly return the dependencies you're going to fetch! Doing otherwise will cause a data race.

This method is only executed once, thus the returned value may never change (otherwise it has no effect).

Implementations on Foreign Types

impl<'a, T, F> SystemData<'a> for Option<Read<'a, T, F>> where
    T: Resource
[src]

[src]

[src]

[src]

[src]

impl<'a, T, F> SystemData<'a> for Option<Write<'a, T, F>> where
    T: Resource
[src]

[src]

[src]

[src]

[src]

impl<'a, A> SystemData<'a> for (A,) where
    A: SystemData<'a>, 
[src]

[src]

[src]

[src]

[src]

impl<'a, A, B> SystemData<'a> for (A, B) where
    A: SystemData<'a>,
    B: SystemData<'a>, 
[src]

[src]

[src]

[src]

[src]

impl<'a, A, B, C> SystemData<'a> for (A, B, C) where
    A: SystemData<'a>,
    B: SystemData<'a>,
    C: SystemData<'a>, 
[src]

[src]

[src]

[src]

[src]

impl<'a, A, B, C, D> SystemData<'a> for (A, B, C, D) where
    A: SystemData<'a>,
    B: SystemData<'a>,
    C: SystemData<'a>,
    D: SystemData<'a>, 
[src]

[src]

[src]

[src]

[src]

impl<'a, A, B, C, D, E> SystemData<'a> for (A, B, C, D, E) where
    A: SystemData<'a>,
    B: SystemData<'a>,
    C: SystemData<'a>,
    D: SystemData<'a>,
    E: SystemData<'a>, 
[src]

[src]

[src]

[src]

[src]

impl<'a, A, B, C, D, E, F> SystemData<'a> for (A, B, C, D, E, F) where
    A: SystemData<'a>,
    B: SystemData<'a>,
    C: SystemData<'a>,
    D: SystemData<'a>,
    E: SystemData<'a>,
    F: SystemData<'a>, 
[src]

[src]

[src]

[src]

[src]

impl<'a, A, B, C, D, E, F, G> SystemData<'a> for (A, B, C, D, E, F, G) where
    A: SystemData<'a>,
    B: SystemData<'a>,
    C: SystemData<'a>,
    D: SystemData<'a>,
    E: SystemData<'a>,
    F: SystemData<'a>,
    G: SystemData<'a>, 
[src]

[src]

[src]

[src]

[src]

impl<'a, A, B, C, D, E, F, G, H> SystemData<'a> for (A, B, C, D, E, F, G, H) where
    A: SystemData<'a>,
    B: SystemData<'a>,
    C: SystemData<'a>,
    D: SystemData<'a>,
    E: SystemData<'a>,
    F: SystemData<'a>,
    G: SystemData<'a>,
    H: SystemData<'a>, 
[src]

[src]

[src]

[src]

[src]

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

[src]

[src]

[src]

[src]

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

[src]

[src]

[src]

[src]

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

[src]

[src]

[src]

[src]

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

[src]

[src]

[src]

[src]

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

[src]

[src]

[src]

[src]

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

[src]

[src]

[src]

[src]

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

[src]

[src]

[src]

[src]

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

[src]

[src]

[src]

[src]

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

[src]

[src]

[src]

[src]

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

[src]

[src]

[src]

[src]

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

[src]

[src]

[src]

[src]

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

[src]

[src]

[src]

[src]

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

[src]

[src]

[src]

[src]

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

[src]

[src]

[src]

[src]

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

[src]

[src]

[src]

[src]

impl<'a, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X> SystemData<'a> 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) where
    A: SystemData<'a>,
    B: SystemData<'a>,
    C: SystemData<'a>,
    D: SystemData<'a>,
    E: SystemData<'a>,
    F: SystemData<'a>,
    G: SystemData<'a>,
    H: SystemData<'a>,
    I: SystemData<'a>,
    J: SystemData<'a>,
    K: SystemData<'a>,
    L: SystemData<'a>,
    M: SystemData<'a>,
    N: SystemData<'a>,
    O: SystemData<'a>,
    P: SystemData<'a>,
    Q: SystemData<'a>,
    R: SystemData<'a>,
    S: SystemData<'a>,
    T: SystemData<'a>,
    U: SystemData<'a>,
    V: SystemData<'a>,
    W: SystemData<'a>,
    X: SystemData<'a>, 
[src]

[src]

[src]

[src]

[src]

impl<'a, 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> SystemData<'a> 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) where
    A: SystemData<'a>,
    B: SystemData<'a>,
    C: SystemData<'a>,
    D: SystemData<'a>,
    E: SystemData<'a>,
    F: SystemData<'a>,
    G: SystemData<'a>,
    H: SystemData<'a>,
    I: SystemData<'a>,
    J: SystemData<'a>,
    K: SystemData<'a>,
    L: SystemData<'a>,
    M: SystemData<'a>,
    N: SystemData<'a>,
    O: SystemData<'a>,
    P: SystemData<'a>,
    Q: SystemData<'a>,
    R: SystemData<'a>,
    S: SystemData<'a>,
    T: SystemData<'a>,
    U: SystemData<'a>,
    V: SystemData<'a>,
    W: SystemData<'a>,
    X: SystemData<'a>,
    Y: SystemData<'a>, 
[src]

[src]

[src]

[src]

[src]

impl<'a, 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> SystemData<'a> 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) where
    A: SystemData<'a>,
    B: SystemData<'a>,
    C: SystemData<'a>,
    D: SystemData<'a>,
    E: SystemData<'a>,
    F: SystemData<'a>,
    G: SystemData<'a>,
    H: SystemData<'a>,
    I: SystemData<'a>,
    J: SystemData<'a>,
    K: SystemData<'a>,
    L: SystemData<'a>,
    M: SystemData<'a>,
    N: SystemData<'a>,
    O: SystemData<'a>,
    P: SystemData<'a>,
    Q: SystemData<'a>,
    R: SystemData<'a>,
    S: SystemData<'a>,
    T: SystemData<'a>,
    U: SystemData<'a>,
    V: SystemData<'a>,
    W: SystemData<'a>,
    X: SystemData<'a>,
    Y: SystemData<'a>,
    Z: SystemData<'a>, 
[src]

[src]

[src]

[src]

[src]

impl<'a, T: ?Sized> SystemData<'a> for PhantomData<T>
[src]

[src]

[src]

[src]

[src]

impl<'a> SystemData<'a> for ()
[src]

[src]

[src]

[src]

[src]

Implementors