Schedule Build Pass (schedule/pass.rs)

bevy · crates/bevy_ecs/src/schedule/pass.rs · rust · Apache-2.0
infra, automation, lang:rust, tag:dependency, tag:graph

Trait allowing modular modification of the ECS schedule dependency graph during build, enabling custom system ordering and set relationships.

// Source: https://github.com/bevyengine/bevy | License: Apache-2.0
// Provided via justclaw.it.com; keep this notice with the code.
use alloc::vec::Vec;
use core::{fmt::Debug, ops::Deref};

use bevy_platform::{collections::HashSet, hash::FixedHasher};
use indexmap::IndexSet;

use super::{DiGraph, NodeId, ScheduleBuildError, ScheduleGraph};
use crate::{
    schedule::{
        graph::{Dag, DagAnalysis, DiGraphToposortError},
        SystemKey, SystemSetKey,
    },
    world::World,
};

/// A pass for modular modification of the dependency graph.
pub trait ScheduleBuildPass: Send + Sync + Debug + 'static {
    /// Called when a dependency between sets or systems was explicitly added to the graph.
    fn add_dependency(&mut self, from: NodeId, to: NodeId, is_weak: bool, is_deferred: bool);



... (truncated -- full source via MCP)

See the full source, get the GitHub permalink, and search for more like it.

Get a free API key