Skip to main content

WorkItem

Struct WorkItem 

Source
pub struct WorkItem {
    pub id: WorkItemId,
    pub key: Key,
    pub project: ProjectId,
    pub parent: Option<WorkItemId>,
    pub kind: WorkKind,
    pub title: String,
    pub order: SiblingOrder,
    pub contract: WorkContract,
    pub execution: ExecutionRecord,
    pub schedule: ScheduleInputs,
}
Expand description

Execution contract and authoritative lifecycle for a unit of work.

Fields§

§id: WorkItemId

Stable entity identity; it must match its containing map key.

§key: Key

Human-readable key, unique in this entity category.

§project: ProjectId

Project that owns this entity.

§parent: Option<WorkItemId>

Optional parent; containment must be acyclic.

§kind: WorkKind

Domain category of this value.

§title: String

Non-empty human-readable title.

§order: SiblingOrder

Stable sibling position, independent of titles and keys.

§contract: WorkContract

Author-approved scope, requirements and applicability.

§execution: ExecutionRecord

Lifecycle and evidence recorded only by semantic commands.

§schedule: ScheduleInputs

Authoritative scheduling inputs; derived dates remain projections.

Implementations§

Source§

impl WorkItem

Source

pub fn attempt(&self, number: u32) -> Option<&SubmissionAttempt>

Attempt with the given ordinal.

Source

pub fn current_attempt(&self) -> Option<&SubmissionAttempt>

Latest attempt unless it was rejected: the pending or verified result a basis may rely on.

Source

pub fn effective_basis(&self) -> Vec<&DependencyBasis>

Latest basis recorded for each edge, in first-recorded edge order.

Source§

impl WorkItem

Source

pub fn held_by(&self, actor: &ActorId) -> bool

Whether the actor owns this work now or held it before a handoff or release.

Independent review reads this rather than the current owner alone, so handing work away or releasing a claim never turns an actor that held it into its reviewer.

Source

pub fn holding_at(&self, actor: &ActorId, at: DateTime<Utc>) -> Option<Holding>

How the actor held this work at or before at, if it did.

A recorded review stays independent after its reviewer later takes the work over, so the records are judged at their own time. Only started work is reviewed and a release only ends an unstarted claim, so the current owner with no later handoff has held the work since before any review. A handoff at the review instant counts as preceding it, because equal times cannot be ordered and independence must not be assumed.

Source§

impl WorkItem

Source

pub fn expected_duration_hours(&self) -> f64

Expected task duration; containers and milestones contribute zero.

Source

pub fn is_executable(&self) -> bool

Whether this work kind supports task lifecycle commands.

Source

pub fn start_event(&self) -> Option<EventTime>

When the task started: its recorded time, or an unknown time when it started before start times were recorded.

Gate evaluation, resuming blocked work and progress reports all read this, so a legacy start is never forgotten by one of them while another still honours it.

Trait Implementations§

Source§

impl Clone for WorkItem

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 WorkItem

Source§

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

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

impl<'de> Deserialize<'de> for WorkItem

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 PartialEq for WorkItem

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl Serialize for WorkItem

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
Source§

impl StructuralPartialEq for WorkItem

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<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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> 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.