pub enum Cmd<M> {
None,
Quit,
Batch(Vec<Cmd<M>>),
Sequence(Vec<Cmd<M>>),
Msg(M),
Tick(Duration),
Log(String),
Task(TaskSpec, Box<dyn FnOnce() -> M + Send>),
SaveState,
RestoreState,
SetMouseCapture(bool),
}Expand description
Commands represent side effects to be executed by the runtime.
Commands are returned from init() and update() to trigger
actions like quitting, sending messages, or scheduling ticks.
Variants§
None
No operation.
Quit
Quit the application.
Batch(Vec<Cmd<M>>)
Execute multiple commands as a batch (currently sequential).
Sequence(Vec<Cmd<M>>)
Execute commands sequentially.
Msg(M)
Send a message to the model.
Tick(Duration)
Schedule a tick after a duration.
Log(String)
Write a log message to the terminal output.
This writes to the scrollback region in inline mode, or is ignored/handled appropriately in alternate screen mode. Safe to use with the One-Writer Rule.
Task(TaskSpec, Box<dyn FnOnce() -> M + Send>)
Execute a blocking operation on a background thread.
When effect queue scheduling is enabled, tasks are enqueued and executed in Smith-rule order on a dedicated worker thread. Otherwise the closure runs on a spawned thread immediately. The return value is sent back as a message to the model.
SaveState
Save widget state to the persistence registry.
Triggers a flush of the state registry to the storage backend. No-op if persistence is not configured.
RestoreState
Restore widget state from the persistence registry.
Triggers a load from the storage backend and updates the cache. No-op if persistence is not configured. Returns a message via callback if state was successfully restored.
SetMouseCapture(bool)
Toggle mouse capture at runtime.
Instructs the terminal session to enable or disable mouse event capture. No-op in test simulators.
Implementations§
Source§impl<M> Cmd<M>
impl<M> Cmd<M>
Sourcepub fn log(msg: impl Into<String>) -> Self
pub fn log(msg: impl Into<String>) -> Self
Create a log command.
The message will be sanitized and written to the terminal log (scrollback). A newline is appended if not present.
Sourcepub fn task<F>(f: F) -> Self
pub fn task<F>(f: F) -> Self
Create a background task command.
The closure runs on a spawned thread (or the effect queue worker when
scheduling is enabled). When it completes, the returned message is
sent back to the model’s update().
Sourcepub fn task_with_spec<F>(spec: TaskSpec, f: F) -> Self
pub fn task_with_spec<F>(spec: TaskSpec, f: F) -> Self
Create a background task command with explicit scheduling metadata.
Sourcepub fn task_weighted<F>(weight: f64, estimate_ms: f64, f: F) -> Self
pub fn task_weighted<F>(weight: f64, estimate_ms: f64, f: F) -> Self
Create a background task command with explicit weight and estimate.
Sourcepub fn task_named<F>(name: impl Into<String>, f: F) -> Self
pub fn task_named<F>(name: impl Into<String>, f: F) -> Self
Create a named background task command.
Sourcepub fn save_state() -> Self
pub fn save_state() -> Self
Create a save state command.
Triggers a flush of the state registry to the storage backend. No-op if persistence is not configured.
Sourcepub fn restore_state() -> Self
pub fn restore_state() -> Self
Create a restore state command.
Triggers a load from the storage backend. No-op if persistence is not configured.
Sourcepub fn set_mouse_capture(enabled: bool) -> Self
pub fn set_mouse_capture(enabled: bool) -> Self
Create a mouse capture toggle command.
Instructs the runtime to enable or disable mouse event capture on the underlying terminal session.