ralph/cli/task/args/mutate.rs
1//! CLI arguments for task mutation transactions.
2//!
3//! Responsibilities:
4//! - Define args for structured task mutation requests.
5//!
6//! Not handled here:
7//! - JSON parsing or queue mutation execution.
8//! - Legacy single-field edit arguments.
9//!
10//! Invariants/assumptions:
11//! - Input is a JSON document that matches `TaskMutationRequest`.
12//! - Missing `--input` means read the JSON request from stdin.
13
14use clap::Args;
15
16#[derive(Args, Clone)]
17pub struct TaskMutateArgs {
18 /// Read the mutation request from a JSON file.
19 ///
20 /// When omitted, Ralph reads the JSON request from stdin.
21 #[arg(long, value_name = "PATH")]
22 pub input: Option<String>,
23
24 /// Preview validation and conflict checks without saving queue changes.
25 #[arg(long)]
26 pub dry_run: bool,
27}