Trait EventSet

Source
pub unsafe trait EventSet {
    type Indices: 'static;

    // Required methods
    fn new_indices(world: &mut World) -> Self::Indices;
    fn find_index<F>(indices: &Self::Indices) -> Option<u32>
       where F: Event;
    fn for_each_index<F>(indices: &Self::Indices, f: F)
       where F: FnMut(bool, u32);
}
Expand description

A set of Event types.

This trait is implemented for all events and tuples of events, so E1, (), (E1,), (E1, E2) etc. are all event sets.

§Safety

This trait is marked unsafe because unsafe code relies on implementations being correct. It is not recommended to implement this trait yourself.

Required Associated Types§

Source

type Indices: 'static

The set of event indices.

Required Methods§

Source

fn new_indices(world: &mut World) -> Self::Indices

Create a new set of events.

Source

fn find_index<F>(indices: &Self::Indices) -> Option<u32>
where F: Event,

Find the event F in the set of events. Returns the event index.

Source

fn for_each_index<F>(indices: &Self::Indices, f: F)
where F: FnMut(bool, u32),

Run a function on every element of the set, passing in the event index and a boolean indicating if the event is targeted or not.

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 EventSet for ()

Source§

type Indices = ()

Source§

fn new_indices(world: &mut World) -> <() as EventSet>::Indices

Source§

fn find_index<F>(_: &<() as EventSet>::Indices) -> Option<u32>
where F: Event,

Source§

fn for_each_index<F>(_: &<() as EventSet>::Indices, f: F)
where F: FnMut(bool, u32),

Source§

impl<E0> EventSet for (E0,)
where E0: EventSet,

Source§

type Indices = (<E0 as EventSet>::Indices,)

Source§

fn new_indices(world: &mut World) -> <(E0,) as EventSet>::Indices

Source§

fn find_index<F>(_: &<(E0,) as EventSet>::Indices) -> Option<u32>
where F: Event,

Source§

fn for_each_index<F>(_: &<(E0,) as EventSet>::Indices, f: F)
where F: FnMut(bool, u32),

Source§

impl<E0, E1> EventSet for (E0, E1)
where E0: EventSet, E1: EventSet,

Source§

type Indices = (<E0 as EventSet>::Indices, <E1 as EventSet>::Indices)

Source§

fn new_indices(world: &mut World) -> <(E0, E1) as EventSet>::Indices

Source§

fn find_index<F>(_: &<(E0, E1) as EventSet>::Indices) -> Option<u32>
where F: Event,

Source§

fn for_each_index<F>(_: &<(E0, E1) as EventSet>::Indices, f: F)
where F: FnMut(bool, u32),

Source§

impl<E0, E1, E2> EventSet for (E0, E1, E2)
where E0: EventSet, E1: EventSet, E2: EventSet,

Source§

impl<E0, E1, E2, E3> EventSet for (E0, E1, E2, E3)
where E0: EventSet, E1: EventSet, E2: EventSet, E3: EventSet,

Source§

impl<E0, E1, E2, E3, E4> EventSet for (E0, E1, E2, E3, E4)
where E0: EventSet, E1: EventSet, E2: EventSet, E3: EventSet, E4: EventSet,

Source§

impl<E0, E1, E2, E3, E4, E5> EventSet for (E0, E1, E2, E3, E4, E5)
where E0: EventSet, E1: EventSet, E2: EventSet, E3: EventSet, E4: EventSet, E5: EventSet,

Source§

impl<E0, E1, E2, E3, E4, E5, E6> EventSet for (E0, E1, E2, E3, E4, E5, E6)
where E0: EventSet, E1: EventSet, E2: EventSet, E3: EventSet, E4: EventSet, E5: EventSet, E6: EventSet,

Source§

impl<E0, E1, E2, E3, E4, E5, E6, E7> EventSet for (E0, E1, E2, E3, E4, E5, E6, E7)
where E0: EventSet, E1: EventSet, E2: EventSet, E3: EventSet, E4: EventSet, E5: EventSet, E6: EventSet, E7: EventSet,

Source§

impl<E0, E1, E2, E3, E4, E5, E6, E7, E8> EventSet for (E0, E1, E2, E3, E4, E5, E6, E7, E8)
where E0: EventSet, E1: EventSet, E2: EventSet, E3: EventSet, E4: EventSet, E5: EventSet, E6: EventSet, E7: EventSet, E8: EventSet,

Source§

impl<E0, E1, E2, E3, E4, E5, E6, E7, E8, E9> EventSet for (E0, E1, E2, E3, E4, E5, E6, E7, E8, E9)
where E0: EventSet, E1: EventSet, E2: EventSet, E3: EventSet, E4: EventSet, E5: EventSet, E6: EventSet, E7: EventSet, E8: EventSet, E9: EventSet,

Source§

impl<E0, E1, E2, E3, E4, E5, E6, E7, E8, E9, E10> EventSet for (E0, E1, E2, E3, E4, E5, E6, E7, E8, E9, E10)
where E0: EventSet, E1: EventSet, E2: EventSet, E3: EventSet, E4: EventSet, E5: EventSet, E6: EventSet, E7: EventSet, E8: EventSet, E9: EventSet, E10: EventSet,

Source§

impl<E0, E1, E2, E3, E4, E5, E6, E7, E8, E9, E10, E11> EventSet for (E0, E1, E2, E3, E4, E5, E6, E7, E8, E9, E10, E11)
where E0: EventSet, E1: EventSet, E2: EventSet, E3: EventSet, E4: EventSet, E5: EventSet, E6: EventSet, E7: EventSet, E8: EventSet, E9: EventSet, E10: EventSet, E11: EventSet,

Source§

impl<E0, E1, E2, E3, E4, E5, E6, E7, E8, E9, E10, E11, E12> EventSet for (E0, E1, E2, E3, E4, E5, E6, E7, E8, E9, E10, E11, E12)
where E0: EventSet, E1: EventSet, E2: EventSet, E3: EventSet, E4: EventSet, E5: EventSet, E6: EventSet, E7: EventSet, E8: EventSet, E9: EventSet, E10: EventSet, E11: EventSet, E12: EventSet,

Source§

impl<E0, E1, E2, E3, E4, E5, E6, E7, E8, E9, E10, E11, E12, E13> EventSet for (E0, E1, E2, E3, E4, E5, E6, E7, E8, E9, E10, E11, E12, E13)
where E0: EventSet, E1: EventSet, E2: EventSet, E3: EventSet, E4: EventSet, E5: EventSet, E6: EventSet, E7: EventSet, E8: EventSet, E9: EventSet, E10: EventSet, E11: EventSet, E12: EventSet, E13: EventSet,

Source§

impl<E0, E1, E2, E3, E4, E5, E6, E7, E8, E9, E10, E11, E12, E13, E14> EventSet for (E0, E1, E2, E3, E4, E5, E6, E7, E8, E9, E10, E11, E12, E13, E14)
where E0: EventSet, E1: EventSet, E2: EventSet, E3: EventSet, E4: EventSet, E5: EventSet, E6: EventSet, E7: EventSet, E8: EventSet, E9: EventSet, E10: EventSet, E11: EventSet, E12: EventSet, E13: EventSet, E14: EventSet,

Implementors§

Source§

impl<E> EventSet for E
where E: Event,