Skip to main content

HealthNode

Trait HealthNode 

Source
pub trait HealthNode: ProjectNode {
    // Required method
    fn assignee(&self) -> Option<&str>;
}
Expand description

The one per-issue fact project health reads beyond ProjectNode.

ProjectNode is WP02’s minimal shape and deliberately does not grow a member for a later work package: WP03 implements it for crate::model::Issue in src/model.rs, which WP04 may not edit, so a required method added there would not compile. This trait is the adapter instead — implemented for crate::model::Issue in the WP04 surface (src/commands/view.rs) — which keeps this module free of the issue model, exactly as its module contract promises.

Required Methods§

Source

fn assignee(&self) -> Option<&str>

The issue’s assignee, None when unset. A blank value counts as unset; assigned_keys is where that rule lives.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl HealthNode for Issue

The WP04 adapter for project health.

crate::projects::HealthNode is a WP04-local trait, and src/projects.rs stays free of the issue model (its module contract). WP03 owns src/model.rs, which this WP may not edit, so the one impl for the real record lives here, in the work package’s authoritative surface.