pub enum SnapshotOrigin {
Launch,
ResumeBackfill,
}Expand description
The provenance of a Run snapshot’s bound_agents array.
Persisted as the BOUND_AGENTS_ORIGIN_KEY sibling of bound_agents
inside the opaque RunRecord::input_json blob. This is Run-store
metadata, not a schema-crate Blueprint wire type: it never enters
crate::blueprint::BoundAgent, BoundAgentDigestInput, or any digest
computation. It lives here beside RunContext — rather than in
crate::service::task_launch — because both the domain launch service
(which writes it) and the server crate’s bindings-explain handler (which
reads it) consume it, and both already depend on this module; parking it
in the service module would force the server crate to reach into a
service-private type.
Variants§
Launch
bound_agents were resolved and pinned at the Run’s initial launch —
the binding identity is the launch-time pin.
ResumeBackfill
bound_agents were backfilled from the current Blueprint when a
pre-binding-snapshot Run was resumed or reran. The binding identity
carries no launch-time pin guarantee.
Implementations§
Source§impl SnapshotOrigin
impl SnapshotOrigin
Sourcepub fn from_snapshot(snapshot: &Value) -> Self
pub fn from_snapshot(snapshot: &Value) -> Self
Read the origin marker from a decoded launch snapshot. An absent (or
unparseable) BOUND_AGENTS_ORIGIN_KEY maps to
SnapshotOrigin::ResumeBackfill — the safe side: a snapshot whose
bound_agents were persisted before this marker existed cannot prove
they were pinned at launch, so it must not be reported as a launch pin
and (on the replay axis) must not have binding digests mixed into its
replay keys. Only test artifacts hit this case in practice — the
strict-binding series is unreleased, so no real snapshot predates the
marker.
Trait Implementations§
Source§impl Clone for SnapshotOrigin
impl Clone for SnapshotOrigin
Source§fn clone(&self) -> SnapshotOrigin
fn clone(&self) -> SnapshotOrigin
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for SnapshotOrigin
Source§impl Debug for SnapshotOrigin
impl Debug for SnapshotOrigin
Source§impl<'de> Deserialize<'de> for SnapshotOrigin
impl<'de> Deserialize<'de> for SnapshotOrigin
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>,
impl Eq for SnapshotOrigin
Source§impl JsonSchema for SnapshotOrigin
impl JsonSchema for SnapshotOrigin
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreSource§impl PartialEq for SnapshotOrigin
impl PartialEq for SnapshotOrigin
Source§impl Serialize for SnapshotOrigin
impl Serialize for SnapshotOrigin
impl StructuralPartialEq for SnapshotOrigin
Auto Trait Implementations§
impl Freeze for SnapshotOrigin
impl RefUnwindSafe for SnapshotOrigin
impl Send for SnapshotOrigin
impl Sync for SnapshotOrigin
impl Unpin for SnapshotOrigin
impl UnsafeUnpin for SnapshotOrigin
impl UnwindSafe for SnapshotOrigin
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,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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