Trait shred::SystemData
[−]
[src]
pub trait SystemData<'a> { fn fetch(res: &'a Resources) -> Self; unsafe fn reads() -> Vec<ResourceId>; unsafe fn writes() -> Vec<ResourceId>; }
A struct implementing system data indicates that it bundles some resources which are required for the execution.
Required Methods
fn fetch(res: &'a Resources) -> Self
Creates a new resource bundle
by fetching the required resources
from the Resources
struct.
Contract
Only fetch the resources you
returned from reads
/ writes
!
unsafe fn reads() -> Vec<ResourceId>
A list of [ResourceId
]s 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).
unsafe fn writes() -> Vec<ResourceId>
A list of [ResourceId
]s 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).
Implementors
impl<'a, T> SystemData<'a> for Fetch<'a, T> where
T: Resource,impl<'a, T> SystemData<'a> for FetchMut<'a, T> where
T: Resource,impl<'a> SystemData<'a> for ()
impl<'a, A> SystemData<'a> for (A,) where
A: SystemData<'a>,impl<'a, A, B> SystemData<'a> for (A, B) where
A: SystemData<'a>,
B: SystemData<'a>,impl<'a, A, B, C> SystemData<'a> for (A, B, C) where
A: SystemData<'a>,
B: SystemData<'a>,
C: SystemData<'a>,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>,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>,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>,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>,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>,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>,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>,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>,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>,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>,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>,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>,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>,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>,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>,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>,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>,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>,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>,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>,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>,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>,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>,