pub struct Execution {
pub exec_id: u64,
pub verb: &'static str,
pub started_at_nanos: i64,
pub workload: String,
pub scenario: String,
pub component: Arc<RwLock<Component>>,
}Expand description
SRD-77 — one invocation of nmbrs <verb> within a
Session. The session is the persistent container;
each execution is the unit of “what was attempted at
this point in time, with what workload version, and how
did it dispose?” Every per-phase / per-metric row carries
the owning execution’s Self::exec_id as a dimensional
label so cross-execution queries can scope cleanly.
Until the SRD-77 refine verb lands the per-session
monotonic registry, every session has exactly one
execution with exec_id = 1. The shape exists now so the
SRD-76 storage layer (phase_outcomes / phase_errors)
and the component tree’s root labels (session,
exec_id) honour the eventual SRD-77 contract from day
one — no later schema migration is required.
Fields§
§exec_id: u64Monotonic per-session sequence (1, 2, 3, ...).
SRD-77’s refine verb bumps it; SRD-88’s concurrent
harness allocates a distinct id per in-flight execution.
verb: &'static strWhich verb launched this execution: "run" /
"resume" / "refine". Operator-visible via the SRD-77
executions table and replay header.
started_at_nanos: i64Wall-clock nanos-since-epoch at execution start.
workload: StringThe workload’s bare stem (the workload= dimensional
label and the executions.workload column for THIS
execution). Per SRD-88 this is execution-tier identity,
not session-tier: N executions sharing one session each
carry their own.
scenario: StringScenario name for this execution (metadata, not a dimensional label).
component: Arc<RwLock<Component>>This execution’s component — a child of the session
component (SRD-88 §2). Carries the exec_id + workload
labels; phase/activity components attach under it so
every metric inherits this execution’s identity. The
session component above it carries only session=<id>
and is shared by every concurrent execution.
Implementations§
Source§impl Execution
impl Execution
Sourcepub fn start(
session: &Session,
workload: &str,
scenario: &str,
verb: &'static str,
exec_id: u64,
) -> Self
pub fn start( session: &Session, workload: &str, scenario: &str, verb: &'static str, exec_id: u64, ) -> Self
Start an execution under session: derive its
Execution::component as a child of the session
component, labelled with this execution’s exec_id +
workload stem (SRD-88 §2 — the session is the shared
common root, each execution derives from it). exec_id
is 1 for a fresh run/resume, the refine plan’s
next_exec_id for refine, or a distinct allocated id
for a concurrent execution.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Execution
impl RefUnwindSafe for Execution
impl Send for Execution
impl Sync for Execution
impl Unpin for Execution
impl UnsafeUnpin for Execution
impl UnwindSafe for Execution
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