pub struct Plan {Show 14 fields
pub format_version: u32,
pub assets: BTreeMap<AssetId, WorkspaceAsset>,
pub workspace: Workspace,
pub revision: u64,
pub projects: BTreeMap<ProjectId, Project>,
pub work_items: BTreeMap<WorkItemId, WorkItem>,
pub requirements: BTreeMap<RequirementId, Requirement>,
pub artifacts: BTreeMap<ArtifactId, Artifact>,
pub decisions: BTreeMap<DecisionId, Decision>,
pub risks: BTreeMap<RiskId, Risk>,
pub dependencies: Vec<Dependency>,
pub external_references: BTreeMap<ExternalReferenceId, ExternalReference>,
pub links: Vec<WorkLink>,
pub calendars: Option<Calendars>,
}Expand description
Authoritative graph and revision; scheduling and completion views are derived.
Fields§
§format_version: u32Portable domain format version; unsupported formats are rejected.
assets: BTreeMap<AssetId, WorkspaceAsset>Assets shared across code and non-code work.
workspace: WorkspaceNamespace containing the graph.
revision: u64Wrapping operation sequence for optimistic concurrency.
projects: BTreeMap<ProjectId, Project>Projects indexed by stable identifier.
work_items: BTreeMap<WorkItemId, WorkItem>Work indexed by stable identifier.
requirements: BTreeMap<RequirementId, Requirement>Requirements indexed by stable identifier.
artifacts: BTreeMap<ArtifactId, Artifact>Evidence indexed by stable identifier.
decisions: BTreeMap<DecisionId, Decision>Decision gates indexed by stable identifier.
risks: BTreeMap<RiskId, Risk>Risks indexed by stable identifier.
dependencies: Vec<Dependency>Directed temporal constraints; cycles are rejected.
external_references: BTreeMap<ExternalReferenceId, ExternalReference>External tracker objects linked to work; context only, never evidence or gates.
links: Vec<WorkLink>Contextual work relationships that never gate readiness, scheduling or progress.
calendars: Option<Calendars>Working calendars; every hour is working time when absent.
Implementations§
Source§impl Plan
impl Plan
Sourcepub fn work_calendar(&self, work: &WorkItem) -> Option<ResolvedCalendar>
pub fn work_calendar(&self, work: &WorkItem) -> Option<ResolvedCalendar>
Calendar and executor a projection uses for work, or None without a calendars block.
Source§impl Plan
impl Plan
Sourcepub fn applicability(&self) -> BTreeMap<WorkItemId, Applicability>
pub fn applicability(&self) -> BTreeMap<WorkItemId, Applicability>
Applicability of every work item; time-independent, so reviews can compare two plans.
Sourcepub fn effective_decision(&self, id: DecisionId) -> Option<&Decision>
pub fn effective_decision(&self, id: DecisionId) -> Option<&Decision>
The decision whose outcome currently stands for id, following replacements.
Source§impl Plan
impl Plan
Sourcepub fn find_work_by_key(&self, key: &str) -> Option<&WorkItem>
pub fn find_work_by_key(&self, key: &str) -> Option<&WorkItem>
Find authoritative work by its human-readable key.
Sourcepub fn find_work_by_key_mut(&mut self, key: &str) -> Option<&mut WorkItem>
pub fn find_work_by_key_mut(&mut self, key: &str) -> Option<&mut WorkItem>
Mutably find authoritative work; callers must validate edits.
Sourcepub fn find_dependency(&self, id: DependencyId) -> Option<&Dependency>
pub fn find_dependency(&self, id: DependencyId) -> Option<&Dependency>
Find a temporal constraint by its stable identity.
Sourcepub fn enforced_dependencies(&self) -> impl Iterator<Item = &Dependency>
pub fn enforced_dependencies(&self) -> impl Iterator<Item = &Dependency>
Constraints that currently gate execution and remaining projections; waived edges are omitted.
Sourcepub fn find_decision_by_key(&self, key: &str) -> Option<&Decision>
pub fn find_decision_by_key(&self, key: &str) -> Option<&Decision>
Find a gate by its human-readable key.