pub struct HookExecutionState {Show 16 fields
pub instance_hash: String,
pub directory_path: PathBuf,
pub config_hash: String,
pub status: ExecutionStatus,
pub total_hooks: usize,
pub completed_hooks: usize,
pub current_hook_index: Option<usize>,
pub hooks: Vec<Hook>,
pub hook_results: HashMap<usize, HookResult>,
pub started_at: DateTime<Utc>,
pub finished_at: Option<DateTime<Utc>>,
pub current_hook_started_at: Option<DateTime<Utc>>,
pub completed_display_until: Option<DateTime<Utc>>,
pub error_message: Option<String>,
pub environment_vars: HashMap<String, String>,
pub previous_env: Option<HashMap<String, String>>,
}Expand description
Represents the state of hook execution for a specific directory
Fields§
§instance_hash: StringHash combining directory path and config (instance identifier)
directory_path: PathBufPath to the directory being processed
config_hash: StringHash of the configuration that was approved
status: ExecutionStatusCurrent status of execution
total_hooks: usizeTotal number of hooks to execute
completed_hooks: usizeNumber of hooks completed so far
current_hook_index: Option<usize>Index of currently executing hook (if any)
hooks: Vec<Hook>The list of hooks being executed (for display purposes)
hook_results: HashMap<usize, HookResult>Results of completed hooks
started_at: DateTime<Utc>Timestamp when execution started
finished_at: Option<DateTime<Utc>>Timestamp when execution finished (if completed)
current_hook_started_at: Option<DateTime<Utc>>Timestamp when the current hook started (if running)
completed_display_until: Option<DateTime<Utc>>Timestamp until which completed state should be displayed
error_message: Option<String>Error message if execution failed
environment_vars: HashMap<String, String>Environment variables captured from source hooks
previous_env: Option<HashMap<String, String>>Previous environment variables (for diff/unset support)
Implementations§
Source§impl HookExecutionState
impl HookExecutionState
Sourcepub fn new(
directory_path: PathBuf,
instance_hash: String,
config_hash: String,
hooks: Vec<Hook>,
) -> Self
pub fn new( directory_path: PathBuf, instance_hash: String, config_hash: String, hooks: Vec<Hook>, ) -> Self
Create a new execution state
Sourcepub fn mark_hook_running(&mut self, hook_index: usize)
pub fn mark_hook_running(&mut self, hook_index: usize)
Mark a hook as currently executing
Sourcepub fn record_hook_result(&mut self, hook_index: usize, result: HookResult)
pub fn record_hook_result(&mut self, hook_index: usize, result: HookResult)
Record the result of a hook execution
Sourcepub fn mark_cancelled(&mut self, reason: Option<String>)
pub fn mark_cancelled(&mut self, reason: Option<String>)
Mark execution as cancelled
Sourcepub fn is_complete(&self) -> bool
pub fn is_complete(&self) -> bool
Check if execution is complete (success, failure, or cancelled)
Sourcepub fn progress_display(&self) -> String
pub fn progress_display(&self) -> String
Get a human-readable progress display
Sourcepub fn current_hook_duration(&self) -> Option<Duration>
pub fn current_hook_duration(&self) -> Option<Duration>
Get current hook duration (if a hook is currently running)
Sourcepub fn current_hook(&self) -> Option<&Hook>
pub fn current_hook(&self) -> Option<&Hook>
Get the currently executing hook
Sourcepub fn format_duration(duration: Duration) -> String
pub fn format_duration(duration: Duration) -> String
Format duration in human-readable format (e.g., “2.3s”, “1m 15s”, “2h 5m”)
Sourcepub fn current_hook_display(&self) -> Option<String>
pub fn current_hook_display(&self) -> Option<String>
Get a short description of the current or next hook for display
Sourcepub fn should_display_completed(&self) -> bool
pub fn should_display_completed(&self) -> bool
Check if the completed state should still be displayed
Trait Implementations§
Source§impl Clone for HookExecutionState
impl Clone for HookExecutionState
Source§fn clone(&self) -> HookExecutionState
fn clone(&self) -> HookExecutionState
1.0.0§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for HookExecutionState
impl Debug for HookExecutionState
Source§impl<'de> Deserialize<'de> for HookExecutionState
impl<'de> Deserialize<'de> for HookExecutionState
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 HookExecutionState
impl PartialEq for HookExecutionState
Source§impl Serialize for HookExecutionState
impl Serialize for HookExecutionState
impl Eq for HookExecutionState
impl StructuralPartialEq for HookExecutionState
Auto Trait Implementations§
impl Freeze for HookExecutionState
impl RefUnwindSafe for HookExecutionState
impl Send for HookExecutionState
impl Sync for HookExecutionState
impl Unpin for HookExecutionState
impl UnwindSafe for HookExecutionState
Blanket Implementations§
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
clone_to_uninit)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<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more