Skip to main content

Module process_subscription

Module process_subscription 

Source
Expand description

Process subscription for spawning and monitoring external processes.

ProcessSubscription wraps std::process::Command as a first-class runtime Subscription. It spawns a child process, captures stdout line-by-line, and sends messages to the model. When the subscription is stopped (via StopSignal), the child process is killed.

§Migration rationale

Web Worker APIs and child-process patterns in source frameworks translate to process-based subscriptions in the terminal context. This provides a clean target for the migration code emitter.

§Example

use ftui_runtime::process_subscription::{ProcessSubscription, ProcessEvent};
use std::time::Duration;

#[derive(Debug)]
enum Msg {
    ProcessOutput(ProcessEvent),
    // ...
}

fn subscriptions() -> Vec<Box<dyn Subscription<Msg>>> {
    vec![Box::new(
        ProcessSubscription::new("tail", Msg::ProcessOutput)
            .arg("-f")
            .arg("/var/log/syslog")
            .timeout(Duration::from_secs(60))
    )]
}

Structs§

ProcessSubscription
A subscription that spawns and monitors an external process.

Enums§

ProcessEvent
Events emitted by a ProcessSubscription.