pub struct Cohort {
pub plan_id: PlanId,
pub rows: Vec<CohortRow>,
}Expand description
Result of a successful crate::ports::Planner::acquire_cohort
call.
SPEC §33 audit fixup (F5 INTERFACE_GAP-001) — the previous shape
was two parallel vectors (deliverables: Vec<Deliverable> +
locks: Vec<LockInfo>) with the index-pairing invariant carried
only in docs. F5 tightens to rows: Vec<CohortRow> so the
invariant is type-enforced.
The wire shape is preserved: #[serde(into = "FlatCohort", try_from = "FlatCohort")] projects to/from the historical two-array JSON so
MCP clients see no breaking change. Deserialization is fallible
(CMP-032): mismatched deliverables/locks lengths are a corrupt
payload and are rejected rather than silently truncated.
Fields§
§plan_id: PlanId§rows: Vec<CohortRow>Trait Implementations§
Source§impl<'de> Deserialize<'de> for Cohort
impl<'de> Deserialize<'de> for Cohort
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for Cohort
impl RefUnwindSafe for Cohort
impl Send for Cohort
impl Sync for Cohort
impl Unpin for Cohort
impl UnsafeUnpin for Cohort
impl UnwindSafe for Cohort
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more