pub struct ExecutionStep {
pub phase: Arc<str>,
pub iteration: u32,
pub step_type: Box<str>,
pub timestamp: String,
pub outcome: StepOutcome,
pub agent: Option<Arc<str>>,
pub duration_secs: Option<u64>,
pub checkpoint_saved_at: Option<String>,
pub git_commit_oid: Option<String>,
pub modified_files_detail: Option<ModifiedFilesDetail>,
pub prompt_used: Option<String>,
pub issues_summary: Option<IssuesSummary>,
}Expand description
A single execution step in the pipeline history.
§Memory Optimization
This struct uses Arcphase and agent fields to reduce memory
usage through string interning. Phase names and agent names are repeated
frequently across execution history entries, so sharing allocations via
Arc
Serialization/deserialization is backward-compatible - Arc
Fields§
§phase: Arc<str>Phase this step belongs to (interned via Arc
iteration: u32Iteration number (for development/review iterations)
step_type: Box<str>Type of step (e.g., “review”, “fix”, “commit”)
timestamp: StringWhen this step was executed (ISO 8601 format string)
outcome: StepOutcomeOutcome of the step
agent: Option<Arc<str>>Agent that executed this step (interned via Arc
duration_secs: Option<u64>Duration in seconds (if available)
checkpoint_saved_at: Option<String>When a checkpoint was saved during this step (ISO 8601 format string)
git_commit_oid: Option<String>Git commit OID created during this step (if any)
modified_files_detail: Option<ModifiedFilesDetail>Detailed information about files modified
prompt_used: Option<String>The prompt text used for this step (for deterministic replay)
issues_summary: Option<IssuesSummary>Issues summary (found and fixed counts)
Implementations§
Source§impl ExecutionStep
impl ExecutionStep
Sourcepub fn new(
phase: &str,
iteration: u32,
step_type: &str,
outcome: StepOutcome,
) -> Self
pub fn new( phase: &str, iteration: u32, step_type: &str, outcome: StepOutcome, ) -> Self
Create a new execution step.
§Performance Note
For optimal memory usage, use new_with_pool to intern repeated phase
and agent names via a StringPool. This constructor creates new Arc
Sourcepub fn new_with_pool(
phase: &str,
iteration: u32,
step_type: &str,
outcome: StepOutcome,
pool: StringPool,
) -> (Self, StringPool)
pub fn new_with_pool( phase: &str, iteration: u32, step_type: &str, outcome: StepOutcome, pool: StringPool, ) -> (Self, StringPool)
Create a new execution step using a StringPool for interning.
This is the preferred constructor when creating many ExecutionSteps,
as it reduces memory usage by sharing allocations for repeated phase
and agent names.
Sourcepub fn with_agent(self, agent: &str) -> Self
pub fn with_agent(self, agent: &str) -> Self
Set the agent that executed this step.
Sourcepub fn with_agent_pooled(
self,
agent: &str,
pool: StringPool,
) -> (Self, StringPool)
pub fn with_agent_pooled( self, agent: &str, pool: StringPool, ) -> (Self, StringPool)
Set the agent using a StringPool for interning.
Sourcepub const fn with_duration(self, duration_secs: u64) -> Self
pub const fn with_duration(self, duration_secs: u64) -> Self
Set the duration of this step.
Sourcepub fn with_git_commit_oid(self, oid: &str) -> Self
pub fn with_git_commit_oid(self, oid: &str) -> Self
Set the git commit OID created during this step.
Trait Implementations§
Source§impl Clone for ExecutionStep
impl Clone for ExecutionStep
Source§fn clone(&self) -> ExecutionStep
fn clone(&self) -> ExecutionStep
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ExecutionStep
impl Debug for ExecutionStep
Source§impl<'de> Deserialize<'de> for ExecutionStep
impl<'de> Deserialize<'de> for ExecutionStep
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>,
Source§impl PartialEq for ExecutionStep
impl PartialEq for ExecutionStep
Source§impl Serialize for ExecutionStep
impl Serialize for ExecutionStep
impl Eq for ExecutionStep
impl StructuralPartialEq for ExecutionStep
Auto Trait Implementations§
impl Freeze for ExecutionStep
impl RefUnwindSafe for ExecutionStep
impl Send for ExecutionStep
impl Sync for ExecutionStep
impl Unpin for ExecutionStep
impl UnsafeUnpin for ExecutionStep
impl UnwindSafe for ExecutionStep
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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<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