pub struct CheckedNode {Show 13 fields
pub name: String,
pub kind: ArtifactKind,
pub resolved: Option<String>,
pub module_bytes: Vec<u8>,
pub signature: Signature,
pub input: Option<InputExpr>,
pub repeat_until: Option<String>,
pub max_iterations: Option<u32>,
pub script: Option<String>,
pub over: Option<PathBuf>,
pub item_output: Option<Ty>,
pub accept: Vec<AcceptCheck>,
pub on_fail: Vec<Rung>,
}Expand description
One checked node, ready to execute.
Clone because a later task’s resume_job rebuilds a JobSpec from an
Arc<Vec<CheckedNode>> held in AppState — every field type here
(Signature, ArtifactKind, InputExpr) is already Clone.
Fields§
§name: StringThe node’s name, as written in nodes = {...}.
kind: ArtifactKindBlock or bundle.
resolved: Option<String>The exact name@version this node resolved to, if it came from the
catalog.
module_bytes: Vec<u8>The compiled module (block) or .cfbundle (bundle) bytes.
signature: SignatureWhat it declared.
input: Option<InputExpr>What feeds this node, if anything.
repeat_until: Option<String>Bounded-loop marker, if this node re-runs on its own output.
max_iterations: Option<u32>Iteration bound, required alongside repeat_until.
script: Option<String>Threaded straight from ResolvedInput::script/Stage::script — see
pipeline.rs. Some only for a Script-kind node.
over: Option<PathBuf>The fan-out manifest this node runs over, if any — see
cuttlefish_core::graph::Node::over. When set, this node runs its
block once per manifest line and presents
fanout_collection_ty downstream rather than its block’s own
declared output.
item_output: Option<Ty>For a fan-out node only: what its block declared as the output of
one item, before fanout_collection_ty replaced signature.output
for downstream typing.
Both are needed and they are not the same type. Downstream nodes
consume the collection, so signature.output must describe that; but
each individual item’s result still has to be validated against what
the block actually promised to produce, which is this. Collapsing them
into one field means every item gets checked against the collection
record and fails.
accept: Vec<AcceptCheck>What “done” means for this node beyond its type — see
crate::accept. Empty means the type signature is the whole
contract, which is the pre-existing behaviour.
on_fail: Vec<Rung>The recovery ladder climbed when an attempt is not accepted. Empty means one attempt and then failure.
Trait Implementations§
Source§impl Clone for CheckedNode
impl Clone for CheckedNode
Source§fn clone(&self) -> CheckedNode
fn clone(&self) -> CheckedNode
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for CheckedNode
impl RefUnwindSafe for CheckedNode
impl Send for CheckedNode
impl Sync for CheckedNode
impl Unpin for CheckedNode
impl UnsafeUnpin for CheckedNode
impl UnwindSafe for CheckedNode
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more