Trait SystemData

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

A static system data that can specify its dependencies at statically (at compile-time). Most system data is a SystemData, the DynamicSystemData type is only needed for very special setups.

Required Methods§

Source

fn setup(res: &mut Resources)

Sets up the system data for fetching it from the Resources.

Source

fn fetch(res: &'a Resources) -> Self

Fetches the system data from Resources. Note that this is only specified for one concrete lifetime 'a, you need to implement the SystemData trait for every possible lifetime.

Source

fn reads() -> Vec<ResourceId>

Returns all read dependencies as fetched from Self::fetch.

Please note that returning wrong dependencies can lead to a panic.

Source

fn writes() -> Vec<ResourceId>

Returns all write dependencies as fetched from Self::fetch.

Please note that returning wrong dependencies can lead to a panic.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<'a> SystemData<'a> for ()

Source§

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

Source§

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

Source§

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

Source§

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>,

Source§

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>,

Source§

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>,

Source§

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>,

Source§

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>,

Source§

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>,

Source§

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>,

Source§

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>,

Source§

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>,

Source§

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>,

Source§

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>,

Source§

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>,

Source§

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>,

Source§

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>,

Source§

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>,

Source§

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>,

Source§

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>,

Source§

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>,

Source§

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>,

Source§

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>,

Source§

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>,

Source§

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>,

Source§

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>,

Source§

impl<'a, P> SystemData<'a> for ParentData<'a, P>
where P: Component + Parent, <P as Component>::Storage: Tracked, Read<'a, EntitiesRes>: SystemData<'a>, Storage<'a, P, Fetch<'a, MaskedStorage<P>>>: SystemData<'a>,

Source§

impl<'a, T> SystemData<'a> for PhantomData<T>
where T: ?Sized,

Source§

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

Source§

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

Implementors§

Source§

impl<'a, T> SystemData<'a> for Storage<'a, T, Fetch<'a, MaskedStorage<T>>>
where T: Component,

Source§

impl<'a, T> SystemData<'a> for Storage<'a, T, FetchMut<'a, MaskedStorage<T>>>
where T: Component,

Source§

impl<'a, T, F> SystemData<'a> for Read<'a, T, F>
where T: Resource, F: SetupHandler<T>,

Source§

impl<'a, T, F> SystemData<'a> for Write<'a, T, F>
where T: Resource, F: SetupHandler<T>,