pub struct LiveActionRunner {
pub state: Arc<AppState>,
}Fields§
§state: Arc<AppState>Trait Implementations§
Source§impl SagaActionRunner for LiveActionRunner
Available on Windows only.
impl SagaActionRunner for LiveActionRunner
Available on Windows only.
Source§fn spawn_pool_window(&self) -> String
fn spawn_pool_window(&self) -> String
Run the
SpawnPoolWindow action. Returns the resulting
pool window label (the host normally synthesizes a
window-pool-<uuid> label; for the saga reply we report
“pending” so the launcher reducer can correlate the
follow-up ReportPoolWindowAdded organic event by saga_id).
In production the spawn is fire-and-forget on the UI thread
— the actual label is reported via the existing organic
report_pool_window_added path. The saga’s Report here
carries an empty/sentinel label indicating “spawn requested,
pool will fill asynchronously.”Source§fn reap_panes(&self, label: &str)
fn reap_panes(&self, label: &str)
Run the
ReapPanes action for the named window. In current
architecture the host’s on_before_close already drains
panes synchronously when a window closes, so this is a
best-effort acknowledge — the saga relies on the organic
Event::PanesReaped (via report_panes_reaped in
client.rs) for the real signal. The Report this returns
is a saga-correlated echo so the saga’s expected_saga_id
filter matches.Source§fn drain_pool_if_last(&self, label: &str) -> bool
fn drain_pool_if_last(&self, label: &str) -> bool
Run the
DrainPoolIfLast action for the named window.
Returns true if the host considers label to have been the
last user-visible window (i.e. a drain WOULD be triggered).
Like reap_panes, the host’s existing on_before_close
already does this decision inline; the saga’s command path
is a re-issue / confirmation channel.Auto Trait Implementations§
impl Freeze for LiveActionRunner
impl !RefUnwindSafe for LiveActionRunner
impl Send for LiveActionRunner
impl Sync for LiveActionRunner
impl Unpin for LiveActionRunner
impl !UnwindSafe for LiveActionRunner
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
§impl<T, U> ConvertReturnValue<U> for Twhere
T: Into<U>,
impl<T, U> ConvertReturnValue<U> for Twhere
T: Into<U>,
fn wrap_result(self) -> U
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.