pub struct ExecutionPlan {
pub id: String,
pub graph_plan: GraphPlan,
pub campaign: CampaignSpec,
pub node_plans: BTreeMap<NodeId, NodePlan>,
pub controller_manifests: BTreeMap<ControllerId, ControllerManifest>,
pub variants: Vec<VariantPlan>,
pub fold_set: Option<FoldSet>,
pub graph_fingerprint: String,
pub campaign_fingerprint: String,
pub controller_fingerprint: String,
}Fields§
§id: String§graph_plan: GraphPlan§campaign: CampaignSpec§node_plans: BTreeMap<NodeId, NodePlan>§controller_manifests: BTreeMap<ControllerId, ControllerManifest>§variants: Vec<VariantPlan>§fold_set: Option<FoldSet>§graph_fingerprint: String§campaign_fingerprint: String§controller_fingerprint: StringImplementations§
Source§impl ExecutionPlan
impl ExecutionPlan
Sourcepub fn from_json(json: &str) -> Result<Self>
pub fn from_json(json: &str) -> Result<Self>
Parse and validate an external execution-plan JSON document.
Serde’s derived struct visitors also accept positional JSON arrays. That representation is an implementation detail, is not part of the published object-only JSON Schema, and would otherwise make standalone Rust readers more permissive than the C, Python and validation-oracle boundaries. The container-shape comparison keeps legitimate serde defaults and BTree ordering normalization, while refusing a sequence wherever the typed wire representation is an object (and vice versa).
Sourcepub fn with_training_losses(
self,
roles: Vec<TrainingLossRoleReference>,
) -> Result<Self>
pub fn with_training_losses( self, roles: Vec<TrainingLossRoleReference>, ) -> Result<Self>
Replace the plan’s training-loss roles with a validated canonical set.
Roles are grouped by their declared node and sorted by output/phase so
every binding produces the same NodeTask requirement order. Nodes not
present in roles are explicitly left without a configurable loss.
pub fn validate(&self) -> Result<()>
pub fn validate_parallel_controller_capabilities( &self, max_workers: usize, phase: Phase, ) -> Result<()>
pub fn node_parallel_levels_for_phase( &self, phase: Phase, ) -> Result<Vec<Vec<NodeId>>>
pub fn campaign_phase_schedule( &self, phase: Phase, ) -> Result<PhaseExecutionSchedule>
Sourcepub fn branch_view_for(&self, branch_id: &str) -> Option<&BranchViewPlan>
pub fn branch_view_for(&self, branch_id: &str) -> Option<&BranchViewPlan>
Returns the BranchViewPlan whose branch_id matches branch_id,
if any. The match is exact; callers that need fuzzy or prefix matching
must iterate self.campaign.branch_view_plans themselves.
Sourcepub fn branch_view_for_path(
&self,
branch_path: &[String],
) -> Option<&BranchViewPlan>
pub fn branch_view_for_path( &self, branch_path: &[String], ) -> Option<&BranchViewPlan>
Returns the BranchViewPlan for the deepest branch in branch_path
that has a matching plan, if any. The path is walked tip-first so the
closest enclosing branch wins; an empty path returns None. The
returned reference borrows the plan from the campaign; the caller can
.clone() it into a DataProviderViewSpec.branch_view field when
constructing a provider view for an in-branch node.
Trait Implementations§
Source§impl Clone for ExecutionPlan
impl Clone for ExecutionPlan
Source§fn clone(&self) -> ExecutionPlan
fn clone(&self) -> ExecutionPlan
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more