Movatterモバイル変換


[0]ホーム

URL:


BioErrorLog Tech Blog

試行錯誤の記録

トップ>Rust>clap::App がimportできない問題の対処法 | Rust

clap::App がimportできない問題の対処法 | Rust

Appの代わりにCommandを使う。

はじめに

Rustの練習帳というオライリー本のサンプルコードを新しいclapバージョンで動かそうとしたとき、clap::Appがimportできませんでした。

対処法と背景をまとめます。

# 作業バージョンclap="4.5.16"

clap::App が見当たらない

問題

問題のコードはこちら:

useclap::App;fnmain() {let matchs=App::new("echors")        .version("0.1.0")        .author("BioErrorLog")        .about("Rust echo")        .get_matches();println!("{:#?}", matchs)}

こちらを実行する下記のようなimportエラーが発生します。

error[E0432]: unresolved import`clap::App`--> src/main.rs:1:5  |1 | use clap::App;  |     ^^^^^^^^^ no`App`in the rootFor more information about this error, try`rustc --explain E0432`.error: could not compile`echors`(bin"echors") due to1 previous error

単純に、clap::Appがimportできてないというエラーですね。

解決策

Appの代わりにCommandを使います。

useclap::Command;fnmain() {let matchs=Command::new("echors")        .version("0.1.0")        .author("BioErrorLog")        .about("Rust echo")        .get_matches();println!("{:#?}", matchs)}

単純ですがこれでエラーは解消します。


CHANGELOGによると、clapバージョン3.1.0からclap::Appは非推奨となり、代わりにclap::Commandに改名されています。

下記の該当issueやpull requestを見るに、元々Appという名称は分かりにくいとコミュニティーで議論があったところで、SubCommandの非推奨化に伴いAppからCommandに改名された模様です。

おわりに

以上、RustコマンドラインパーサーclapのAppがimportできなくなっていた問題の対処法をメモしました。

どなたかの参考になれば幸いです。

Follow @bioerrorlog

[関連記事]

www.bioerrorlog.work

参考

clap/CHANGELOG.md at master · clap-rs/clap · GitHub

fix: Rename App to Command by epage · Pull Request #3472 · clap-rs/clap · GitHub

`App` feels like an awkward name in the API · Issue #3089 · clap-rs/clap · GitHub

O'Reilly Japan - Rustの練習帳

筆者
id:BioErrorLog

BioErrorLog
AI/クラウド/データエンジニアリングなど. ゲームもつくる.

カテゴリー
検索

引用をストックしました

引用するにはまずログインしてください

引用をストックできませんでした。再度お試しください

限定公開記事のため引用できません。

読者です読者をやめる読者になる読者になる

[8]ページ先頭

©2009-2025 Movatter.jp