refactor(#2772): enumflags2 for the edge set; drop re-export shims
Review follow-ups on #2785. `DepWhen` wraps `BitFlags<TerminalState>` instead of a hand-rolled `u8`, so the bit manipulation belongs to the library and `TerminalState` gains its flag value from `#[bitflags]` rather than a `bit()` match anyone could get wrong. `of`/`accepts`/`is_empty` become one-liners over it. Serialization is written out by hand rather than derived: clippy's `unsafe_derive_deserialize` fires on deriving over a type with unsafe internals, and the honest fix is to say what the wire form is. It is now the list of accepted outcomes — `["done","failed"]` — which reads better than a bitmask and survives the bits being renumbered. Also drops the `pub use` re-export of `DepWhen` / `TerminalState` from hive-c0re's `model`. It existed so that `use super::model::…` kept compiling, which is a shim for one consumer's convenience; the sites import from `hive_jobq` directly now. And removes comments narrating what the code used to be. Git holds that.
This commit is contained in:
parent
07078b76ef
commit
940c928fee
8 changed files with 74 additions and 50 deletions
|
|
@ -18,10 +18,9 @@
|
|||
//! by a subtree root and borrowed by its descendants (continuity);
|
||||
//! - per-DAG terminal work is an ordinary **tail node**
|
||||
//! ([`NodeKind::ResolveApproval`] / [`NodeKind::EmitRebuilt`]) that the builder
|
||||
//! appends in [`templates`], weak-edged (`AfterAny`) onto the DAG's other group
|
||||
//! roots so it runs on success, failure and cancel alike. It reads how the work
|
||||
//! went off its own [`Claim::deps`] — no inline hook fired from outside the
|
||||
//! graph, no drained event stream.
|
||||
//! appends in [`templates`], edged onto the DAG's other group roots by the
|
||||
//! outcome it reports. Templates emit one tail per outcome and the graph runs
|
||||
//! exactly one, so nothing branches at runtime.
|
||||
//!
|
||||
//! The queue is runtime-only (no persistence): an empty graph on boot; desired
|
||||
//! state is re-derived by the reconcile sweep. A single scheduler task
|
||||
|
|
@ -49,7 +48,8 @@ use hive_sh4re::wire_time::now_unix;
|
|||
use tokio::sync::Notify;
|
||||
|
||||
use crate::coordinator::TransientKind;
|
||||
pub use model::{DagSpec, DagView, NodeKind, NodeSpec, PermPayload, Source, State, TerminalState};
|
||||
pub use hive_jobq::TerminalState;
|
||||
pub use model::{DagSpec, DagView, NodeKind, NodeSpec, PermPayload, Source, State};
|
||||
use resource::Resource;
|
||||
|
||||
/// How many terminal DAGs (`Done` / `Failed` / `Cancelled`) the snapshot
|
||||
|
|
|
|||
Loading…
Reference in a new issue