Skip to main content

PlanStatus

Struct PlanStatus 

Source
pub struct PlanStatus {
Show 17 fields pub plan_id: PlanId, pub deliverables: Vec<(String, DeliverableStatus, u32, u32, u32)>, pub critical_path: Vec<String>, pub critical_path_hours: f32, pub locks_held: Vec<LockInfo>, pub critical_ids: Vec<String>, pub schedule: Vec<ScheduleRow>, pub ready: Vec<String>, pub plan_complete: bool, pub milestones: Vec<MilestoneRow>, pub name: Option<String>, pub variant: Option<String>, pub selected: Option<bool>, pub archived: Option<bool>, pub active_plan: Option<String>, pub definition_drift: Option<bool>, pub baseline: Option<PlanBaseline>,
}
Expand description

Read-only snapshot of a plan’s current state, returned by crate::ports::Planner::status.

Fields§

§plan_id: PlanId§deliverables: Vec<(String, DeliverableStatus, u32, u32, u32)>

Per-deliverable (id, status, attempt_count, failure_count, lapse_count). Order matches insertion order in the originally submitted PlanGraph::deliverables so callers can render a stable table. On the wire each row is a positional array — trailing elements were appended, so readers indexing [0..=2] keep working (backward-tolerant extension).

§critical_path: Vec<String>

Ids on the longest dependency chain, in execution order. Always begins with __start__ and ends with __finish__ (synthetic endpoints; an empty plan is just those two).

§critical_path_hours: f32

Scheduled length plus lags along critical_path (= __finish__ earliest finish).

§locks_held: Vec<LockInfo>

Every lock currently active across the plan.

§critical_ids: Vec<String>

Every zero-float deliverable (synthetic endpoints excluded), sorted by (es, id).

§schedule: Vec<ScheduleRow>

Per-deliverable CPM schedule, in graph insertion order.

§ready: Vec<String>

Deliverables with status Ready and no live lock, sorted by (latest_start, float, id) ascending (smallest latest start first, i.e. longest remaining tail; same order as crate::ports::Planner::acquire_cohort via the shared priority_key); membership is a superset: acquire may still skip deliverables at the failure or lapse cap, manual deliverables, or whose files overlap a held lock.

§plan_complete: bool

True when every deliverable is Complete (vacuously true for an empty plan).

§milestones: Vec<MilestoneRow>

One row per milestone deliverable, in graph order.

§name: Option<String>

Plan line name of a named variant; None for an unnamed plan.

§variant: Option<String>

Variant name of a named variant; None for an unnamed plan.

§selected: Option<bool>

Whether this variant is its line’s selected (executable) variant; None for an unnamed plan.

§archived: Option<bool>

Effective archived flag of this variant (its line is archived or the variant itself is); None for an unnamed plan. Archived variants stay readable through status and ev.

§active_plan: Option<String>

Only when PlanStatus::archived is Some(true): the name of the project’s single active plan line, so a caller holding a stale id learns where the live work is. None when not archived, for an unnamed plan, or when the project has zero or several active lines.

§definition_drift: Option<bool>

Some(true) when the variant’s plan file no longer matches what was last synced (by content hash), Some(false) when it matches. None (unknown) when the variant has no source file, the planner has no project root for the variant’s project, or the file is unreadable.

§baseline: Option<PlanBaseline>

The latest earned-value baseline of the plan, or null before the first baseline.

Trait Implementations§

Source§

impl Clone for PlanStatus

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for PlanStatus

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for PlanStatus

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Serialize for PlanStatus

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoToolOutput for T
where T: Serialize + 'static,

Source§

fn into_tool_output(self) -> Result<ToolOutput, ToolExecutionError>

Convert this value without routing structured data through a string.
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WasmCompatSend for T
where T: Send,

Source§

impl<T> WasmCompatSync for T
where T: Sync,

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more