Skip to main content

LifecycleEvent

Enum LifecycleEvent 

Source
pub enum LifecycleEvent<'a> {
    Registered {
        workspace: &'a WorkspaceId,
        run: &'a RunId,
        occurrence: &'a str,
        graph: &'a GraphDescription,
        parent: Option<&'a ActionContext>,
        lineage: Option<&'a RunLineage>,
    },
    ChildFinished {
        parent: &'a ActionContext,
        snapshot: &'a RunSnapshot,
    },
    ExecuteStarted {
        run: &'a RunId,
        occurrence: &'a str,
    },
    ExecuteFinished {
        snapshot: &'a RunSnapshot,
        failure: Option<&'a WorkflowFailure>,
    },
    StepStarted {
        context: &'a ActionContext,
        state: &'a WorkflowState,
        inputs: &'a Map<String, Value>,
    },
    StepFinished {
        context: &'a ActionContext,
        outcome: Option<Result<&'a ActionOutcome, &'a WorkflowFailure>>,
        checkpoint: &'a Checkpoint,
    },
    StreamStarted {
        context: &'a ActionContext,
        span: Option<&'a str>,
    },
    StreamItem {
        context: &'a ActionContext,
        span: Option<&'a str>,
        index: usize,
        result: &'a Map<String, Value>,
    },
    StreamFinished {
        context: &'a ActionContext,
        span: Option<&'a str>,
        items: usize,
        failure: Option<&'a WorkflowFailure>,
    },
    SpanStarted {
        context: &'a ActionContext,
        id: &'a str,
        name: &'a str,
        parent: Option<&'a str>,
        dependencies: &'a [String],
    },
    SpanAttribute {
        context: &'a ActionContext,
        span: Option<&'a str>,
        key: &'a str,
        value: &'a Value,
        tags: &'a Map<String, Value>,
    },
    SpanFinished {
        context: &'a ActionContext,
        id: &'a str,
    },
}
Expand description

An exhaustive borrowed view of one application lifecycle event.

Variants§

§

Registered

Registers a run and its graph with optional child or restore lineage.

Fields

§workspace: &'a WorkspaceId

Workspace containing the run.

§run: &'a RunId

Registered run identity.

§occurrence: &'a str

Exact admitted execution occurrence.

§graph: &'a GraphDescription

Graph used by the registered run.

§parent: Option<&'a ActionContext>

Parent action when this is an admitted child.

§lineage: Option<&'a RunLineage>

Original boundary when this is a restored run.

§

ChildFinished

Finishes an admitted child under its exact parent action.

Fields

§parent: &'a ActionContext

Parent action that admitted this child.

§snapshot: &'a RunSnapshot

Authoritative child snapshot.

§

ExecuteStarted

Begins one execution session.

Fields

§run: &'a RunId

Run being advanced.

§occurrence: &'a str

Exact admitted execution occurrence.

§

ExecuteFinished

Finishes one execution session.

Fields

§snapshot: &'a RunSnapshot

Authoritative run snapshot at session finalization.

§failure: Option<&'a WorkflowFailure>

Execution failure, when present.

§

StepStarted

Begins an action attempt against its committed base and resolved inputs.

Fields

§context: &'a ActionContext

Identity and attempted action ordinal.

§state: &'a WorkflowState

Unchanged committed base state.

§inputs: &'a Map<String, Value>

Resolved transient action inputs.

§

StepFinished

Finalizes an attempt, including rollback with no completed outcome.

Fields

§context: &'a ActionContext

Identity and attempted ordinal, including failed attempts.

§outcome: Option<Result<&'a ActionOutcome, &'a WorkflowFailure>>

Committed result, exact failure, or no outcome on EOF, abort or Drop.

§checkpoint: &'a Checkpoint

Committed boundary; failure retains the unchanged prior boundary.

§

StreamStarted

Opens partial-result observation for one action or addressed span.

Fields

§context: &'a ActionContext

Action owning this stream.

§span: Option<&'a str>

Addressed span, or the action root.

§

StreamItem

Observes one transient partial result.

Fields

§context: &'a ActionContext

Action owning this stream.

§span: Option<&'a str>

Addressed span, or the action root.

§index: usize

Zero-based index within this stream.

§result: &'a Map<String, Value>

Transient result fields; these do not commit state.

§

StreamFinished

Closes partial-result observation exactly once.

Fields

§context: &'a ActionContext

Action owning this stream.

§span: Option<&'a str>

Addressed span, or the action root.

§items: usize

Number of observed partial items.

§failure: Option<&'a WorkflowFailure>

Failure that closed observation, if any.

§

SpanStarted

Opens an explicitly addressed span within one action attempt.

Fields

§context: &'a ActionContext

Action owning the span.

§id: &'a str

Unique open span identity within this attempt.

§name: &'a str

Display name; repeated names are permitted.

§parent: Option<&'a str>

Open parent span, or the action root.

§dependencies: &'a [String]

Dependency span identities in caller-authored order.

§

SpanAttribute

Adds an attribute to an open span or the action root.

Fields

§context: &'a ActionContext

Action owning the attribute.

§span: Option<&'a str>

Open span, or the action root.

§key: &'a str

Attribute name.

§value: &'a Value

Attribute value.

§tags: &'a Map<String, Value>

Caller tags whose values are strings.

§

SpanFinished

Closes an addressed span.

Fields

§context: &'a ActionContext

Action owning the span.

§id: &'a str

Exact open span identity.

Implementations§

Source§

impl LifecycleEvent<'_>

Source

pub fn tracking_records( &self, observed_at: SystemTime, ) -> Result<Vec<Value>, AppError>

Projects this observation into the pinned rurr tracking JSON records.

This is an explicit content export: inputs, results, state and attributes may be present. The caller owns transport and samples the observation time. No record is retained and no hook is invoked. The complete encoded list is bounded to 1 MiB. Timed records require UTC years 1970 through 9999.

Execute boundaries, child completion and nonfirst partial items have no pinned wire row and return an empty list. Step completion serializes its temporary state projection through the process-global field encoders; the authoritative checkpoint remains unchanged. A step without an outcome has no pinned end-entry state and returns an input error before invoking a field encoder.

use app_kit::workflow::{LifecycleEvent, RunId};
let run: RunId = "run_8a7c251e-b5b8-4d9e-8f0b-123456789abc".parse()?;
let event = LifecycleEvent::ExecuteStarted {
run: &run, occurrence: "00000000000040008000000000000001",
};
assert!(event.tracking_records(std::time::UNIX_EPOCH)?.is_empty());
§Errors

Returns InvalidInput for a step with no outcome, missing graph source, unsupported timestamp, malformed span attributes, or exceeded record bounds. Codec errors propagate from state serialization. This explicit export may contain caller content; it is separate from safe operational tracing.

Auto Trait Implementations§

§

impl<'a> Freeze for LifecycleEvent<'a>

§

impl<'a> RefUnwindSafe for LifecycleEvent<'a>

§

impl<'a> Send for LifecycleEvent<'a>

§

impl<'a> Sync for LifecycleEvent<'a>

§

impl<'a> Unpin for LifecycleEvent<'a>

§

impl<'a> UnsafeUnpin for LifecycleEvent<'a>

§

impl<'a> UnwindSafe for LifecycleEvent<'a>

Blanket Implementations§

Source§

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> ArchivePointee for T

Source§

type ArchivedMetadata = ()

The archived version of the pointer metadata for this type.
Source§

fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata

Converts some archived metadata to the pointer metadata for itself.
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> Conv for T

Source§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> FmtForward for T

Source§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
Source§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
Source§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
Source§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
Source§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
Source§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
Source§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
Source§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
Source§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<T> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<L> LayerExt<L> for L

Source§

fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>
where L: Layer<S>,

Applies the layer to a service and wraps it in Layered.
Source§

impl<T> LayoutRaw for T

Source§

fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>

Returns the layout of the type.
Source§

impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
where T: SharedNiching<N1, N2>, N1: Niching<T>, N2: Niching<T>,

Source§

unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool

Returns whether the given value has been niched. Read more
Source§

fn resolve_niched(out: Place<NichedOption<T, N1>>)

Writes data to out indicating that a T is niched.
Source§

impl<T> Pipe for T
where T: ?Sized,

Source§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
Source§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
Source§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
Source§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
Source§

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe function.
Source§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
Source§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R, ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Pointee for T

Source§

type Metadata = ()

The metadata type for pointers and references to this type.
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> Tap for T

Source§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
Source§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
Source§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
Source§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
Source§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
Source§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
Source§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
Source§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
Source§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
Source§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release builds.
Source§

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release builds.
Source§

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
Source§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
Source§

impl<T> TryConv for T

Source§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more