pub struct LoopState {Show 14 fields
pub iteration: u32,
pub consecutive_failures: u32,
pub cumulative_cost: f64,
pub started_at: Instant,
pub last_hat: Option<HatId>,
pub consecutive_blocked: u32,
pub last_blocked_hat: Option<HatId>,
pub task_block_counts: HashMap<String, u32>,
pub abandoned_tasks: Vec<String>,
pub abandoned_task_redispatches: u32,
pub consecutive_malformed_events: u32,
pub hat_activation_counts: HashMap<HatId, u32>,
pub exhausted_hats: HashSet<HatId>,
pub last_checkin_at: Option<Instant>,
}Expand description
Current state of the event loop.
Fields§
§iteration: u32Current iteration number (1-indexed).
consecutive_failures: u32Number of consecutive failures.
cumulative_cost: f64Cumulative cost in USD (if tracked).
started_at: InstantWhen the loop started.
last_hat: Option<HatId>The last hat that executed.
consecutive_blocked: u32Consecutive blocked events from the same hat.
last_blocked_hat: Option<HatId>Hat that emitted the last blocked event.
task_block_counts: HashMap<String, u32>Per-task block counts for task-level thrashing detection.
abandoned_tasks: Vec<String>Tasks that have been abandoned after 3+ blocks.
abandoned_task_redispatches: u32Count of times planner dispatched an already-abandoned task.
consecutive_malformed_events: u32Consecutive malformed JSONL lines encountered (for validation backpressure).
hat_activation_counts: HashMap<HatId, u32>Per-hat activation counts (used for max_activations).
exhausted_hats: HashSet<HatId>Hats for which <hat_id>.exhausted has been emitted.
last_checkin_at: Option<Instant>When the last Telegram check-in message was sent.
None means no check-in has been sent yet.
Implementations§
Trait Implementations§
Auto Trait Implementations§
impl Freeze for LoopState
impl RefUnwindSafe for LoopState
impl Send for LoopState
impl Sync for LoopState
impl Unpin for LoopState
impl UnwindSafe for LoopState
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
Mutably borrows from an owned value. Read more
Source§impl<T> Erasable for T
impl<T> Erasable for T
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>
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 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>
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