Skip to content

CLI: --text/--file の同時指定を clap 競合で弾くようにし入力取得を簡素化#13

Merged
T3pp31 merged 2 commits into
mainfrom
codex/add-conflicts_with-to-cipherargs
Apr 17, 2026
Merged

CLI: --text/--file の同時指定を clap 競合で弾くようにし入力取得を簡素化#13
T3pp31 merged 2 commits into
mainfrom
codex/add-conflicts_with-to-cipherargs

Conversation

@T3pp31
Copy link
Copy Markdown
Owner

@T3pp31 T3pp31 commented Apr 17, 2026

Motivation

  • 現在は textfile を同時に指定した場合にランタイムでエラー判定していたため、引数パース段階で弾いて実行ロジックを単純化する必要があった。
  • 引数衝突を clap に任せることでコマンド利用者へのエラーメッセージを早期に出力し、get_input_text の分岐を簡潔にできる。

Description

  • src/cli.rs の共通引数 CipherArgstext/file にそれぞれ #[arg(conflicts_with = "...")] を追加して encrypt/decrypt で同時指定を clap が検出するようにした。
  • Commands::BruteForcetext/file にも同様の conflicts_with を追加した。
  • get_input_texttextfilestdin の順で早期 return する実装に整理して match (text,file) の冗長な分岐を削除した。
  • テストを更新または追加し、内部ユニットテストを text 優先の期待に合わせて修正し、統合テスト群(tests/cli_output_tests.rs)に encryptbrute-force の同時指定で clap が即時エラーを返すケースを追加した。

Testing

  • 実行した自動テスト: cargo test --test cli_output_tests が成功(全テスト通過)。
  • 実行した自動テスト: cargo test test_get_input_text_prefers_text_when_both_provided が成功(該当ユニットテスト通過)。

Codex Task

@T3pp31 T3pp31 merged commit 9b9d96e into main Apr 17, 2026
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant