cargo-port 0.1.4

A TUI for inspecting and managing Rust projects
use crate::project::AbsolutePath;

/// An action waiting for user confirmation (y/n).
pub(crate) enum ConfirmAction {
    /// `cargo clean` on the project at this absolute path.
    Clean(AbsolutePath),
    /// `cargo clean` fanned out across every checkout in a worktree
    /// group (primary + every linked worktree). Triggered by the
    /// Clean shortcut when a `VisibleRow::Root` over a
    /// `WorktreeGroup` is selected.
    CleanGroup {
        primary: AbsolutePath,
        linked:  Vec<AbsolutePath>,
    },
    /// Send `SIGTERM` to the running instance named by `label`. The PID
    /// is verified against `create_time` (the process's start time in
    /// epoch seconds) immediately before the signal, so a PID the OS
    /// reassigned while the dialog was open is never killed.
    KillTarget {
        label:       String,
        pid:         u32,
        create_time: u64,
    },
}