pub struct Callback<C, F, Params: SystemParam> {
pub ctx: C,
/* private fields */
}Expand description
Unified dispatch type. Stores per-callback context alongside pre-resolved resource access.
- Context-free handlers:
Callback<(), CtxFree<F>, P>— created viaIntoHandler::into_handler. - Context-owning handlers:
Callback<C, F, P>— created viaIntoCallback::into_callback.
Both implement Handler<E>.
§Examples
use nexus_rt::{WorldBuilder, ResMut, IntoCallback, Handler};
struct Ctx { count: u64 }
fn handler(ctx: &mut Ctx, mut val: ResMut<u64>, event: u32) {
*val += event as u64;
ctx.count += 1;
}
let mut builder = WorldBuilder::new();
builder.register::<u64>(0);
let mut world = builder.build();
let mut cb = handler.into_callback(Ctx { count: 0 }, world.registry_mut());
cb.run(&mut world, 10u32);
assert_eq!(cb.ctx.count, 1);
assert_eq!(*world.resource::<u64>(), 10);Fields§
§ctx: CPer-callback owned state. Accessible outside dispatch.
Trait Implementations§
Source§impl<C: 'static, E, F: 'static, P0: SystemParam + 'static> Handler<E> for Callback<C, F, (P0,)>
impl<C: 'static, E, F: 'static, P0: SystemParam + 'static> Handler<E> for Callback<C, F, (P0,)>
Source§impl<C: 'static, E, F: 'static, P0: SystemParam + 'static, P1: SystemParam + 'static> Handler<E> for Callback<C, F, (P0, P1)>
impl<C: 'static, E, F: 'static, P0: SystemParam + 'static, P1: SystemParam + 'static> Handler<E> for Callback<C, F, (P0, P1)>
Source§impl<C: 'static, E, F: 'static, P0: SystemParam + 'static, P1: SystemParam + 'static, P2: SystemParam + 'static> Handler<E> for Callback<C, F, (P0, P1, P2)>
impl<C: 'static, E, F: 'static, P0: SystemParam + 'static, P1: SystemParam + 'static, P2: SystemParam + 'static> Handler<E> for Callback<C, F, (P0, P1, P2)>
Source§impl<C: 'static, E, F: 'static, P0: SystemParam + 'static, P1: SystemParam + 'static, P2: SystemParam + 'static, P3: SystemParam + 'static> Handler<E> for Callback<C, F, (P0, P1, P2, P3)>
impl<C: 'static, E, F: 'static, P0: SystemParam + 'static, P1: SystemParam + 'static, P2: SystemParam + 'static, P3: SystemParam + 'static> Handler<E> for Callback<C, F, (P0, P1, P2, P3)>
Source§impl<C: 'static, E, F: 'static, P0: SystemParam + 'static, P1: SystemParam + 'static, P2: SystemParam + 'static, P3: SystemParam + 'static, P4: SystemParam + 'static> Handler<E> for Callback<C, F, (P0, P1, P2, P3, P4)>
impl<C: 'static, E, F: 'static, P0: SystemParam + 'static, P1: SystemParam + 'static, P2: SystemParam + 'static, P3: SystemParam + 'static, P4: SystemParam + 'static> Handler<E> for Callback<C, F, (P0, P1, P2, P3, P4)>
Source§impl<C: 'static, E, F: 'static, P0: SystemParam + 'static, P1: SystemParam + 'static, P2: SystemParam + 'static, P3: SystemParam + 'static, P4: SystemParam + 'static, P5: SystemParam + 'static> Handler<E> for Callback<C, F, (P0, P1, P2, P3, P4, P5)>
impl<C: 'static, E, F: 'static, P0: SystemParam + 'static, P1: SystemParam + 'static, P2: SystemParam + 'static, P3: SystemParam + 'static, P4: SystemParam + 'static, P5: SystemParam + 'static> Handler<E> for Callback<C, F, (P0, P1, P2, P3, P4, P5)>
Source§impl<C: 'static, E, F: 'static, P0: SystemParam + 'static, P1: SystemParam + 'static, P2: SystemParam + 'static, P3: SystemParam + 'static, P4: SystemParam + 'static, P5: SystemParam + 'static, P6: SystemParam + 'static> Handler<E> for Callback<C, F, (P0, P1, P2, P3, P4, P5, P6)>
impl<C: 'static, E, F: 'static, P0: SystemParam + 'static, P1: SystemParam + 'static, P2: SystemParam + 'static, P3: SystemParam + 'static, P4: SystemParam + 'static, P5: SystemParam + 'static, P6: SystemParam + 'static> Handler<E> for Callback<C, F, (P0, P1, P2, P3, P4, P5, P6)>
Source§impl<C: 'static, E, F: 'static, P0: SystemParam + 'static, P1: SystemParam + 'static, P2: SystemParam + 'static, P3: SystemParam + 'static, P4: SystemParam + 'static, P5: SystemParam + 'static, P6: SystemParam + 'static, P7: SystemParam + 'static> Handler<E> for Callback<C, F, (P0, P1, P2, P3, P4, P5, P6, P7)>
impl<C: 'static, E, F: 'static, P0: SystemParam + 'static, P1: SystemParam + 'static, P2: SystemParam + 'static, P3: SystemParam + 'static, P4: SystemParam + 'static, P5: SystemParam + 'static, P6: SystemParam + 'static, P7: SystemParam + 'static> Handler<E> for Callback<C, F, (P0, P1, P2, P3, P4, P5, P6, P7)>
Auto Trait Implementations§
impl<C, F, Params> Freeze for Callback<C, F, Params>
impl<C, F, Params> RefUnwindSafe for Callback<C, F, Params>
impl<C, F, Params> Send for Callback<C, F, Params>
impl<C, F, Params> Sync for Callback<C, F, Params>
impl<C, F, Params> Unpin for Callback<C, F, Params>
impl<C, F, Params> UnsafeUnpin for Callback<C, F, Params>
impl<C, F, Params> UnwindSafe for Callback<C, F, Params>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more