pub trait ScheduleLabel:
Send
+ Sync
+ Debug
+ DynEq
+ DynHash {
// Required method
fn dyn_clone(&self) -> Box<dyn ScheduleLabel>;
// Provided method
fn intern(&self) -> Interned<dyn ScheduleLabel>
where Self: Sized { ... }
}Expand description
A strongly-typed class of labels used to identify a Schedule.
Each schedule in a World has a unique schedule label value, and
schedules can be automatically created from labels via Schedules::add_systems().
§Defining new schedule labels
By default, you should use Bevy’s premade schedule labels which implement this trait.
If you are using bevy_ecs directly or if you need to run a group of systems outside
the existing schedules, you may define your own schedule labels by using
#[derive(ScheduleLabel)].
use bevy_ecs::prelude::*;
use bevy_ecs::schedule::ScheduleLabel;
// Declare a new schedule label.
#[derive(ScheduleLabel, Clone, Debug, PartialEq, Eq, Hash, Default)]
struct Update;
let mut world = World::new();
// Add a system to the schedule with that label (creating it automatically).
fn a_system_function() {}
world.get_resource_or_init::<Schedules>().add_systems(Update, a_system_function);
// Run the schedule, and therefore run the system.
world.run_schedule(Update);Required Methods§
Sourcefn dyn_clone(&self) -> Box<dyn ScheduleLabel>
fn dyn_clone(&self) -> Box<dyn ScheduleLabel>
Clones this ScheduleLabel.
Provided Methods§
Trait Implementations§
impl Eq for dyn ScheduleLabel
Source§impl Hash for dyn ScheduleLabel
impl Hash for dyn ScheduleLabel
Source§impl Internable for dyn ScheduleLabel
impl Internable for dyn ScheduleLabel
Source§impl PartialEq for dyn ScheduleLabel
impl PartialEq for dyn ScheduleLabel
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".