パッケージ内の錆コードから貨物パッケージのメタデータ(バージョンなど)にアクセスするにはどうすればよいですか?私の場合は、標準の--version
フラグを持っているコマンドラインツールをビルドしています。パッケージのバージョンをCargo.toml
から読み取るように実装したいので、2つには維持する必要はありません場所。誰かがプログラムから貨物のメタデータにアクセスしたいと思う他の理由があると私は想像することができます。錆プログラムが貨物パッケージからメタデータにアクセスするにはどうすればよいですか?
69
A
答えて
102
Cargoは環境変数を介してコンパイラにいくつかのメタデータを渡します。その一覧はCargo documentation pagesにあります。
貨物コードには、this methodというコンパイラ環境が設定されています。このコードは以前のバージョンよりも複雑になり、変数のリスト全体は動的である可能性があるため、もはやそれから明らかになりません。しかし、少なくとも以下の変数は、(ドキュメントのリストから)が設定されています
CARGO
CARGO_MANIFEST_DIR
CARGO_PKG_VERSION_MAJOR
CARGO_PKG_VERSION_MINOR
CARGO_PKG_VERSION_PATCH
CARGO_PKG_VERSION_PRE
CARGO_PKG_VERSION
CARGO_PKG_NAME
CARGO_PKG_DESCRIPTION
CARGO_PKG_HOMEPAGE
CARGO_PKG_AUTHORS
OUT_DIR
あなたはenv!()
マクロを使用して環境変数にアクセスすることができます。あなたのプログラムでも貨物なしでコンパイルしたい場合は、あなたがoption_env!()
を使用することができます
const VERSION: &'static str = env!("CARGO_PKG_VERSION");
// ...
println!("MyProgram v{}", VERSION);
:あなたがこれを行うことができ、あなたのプログラムのバージョン番号を挿入するには
const VERSION: Option<&'static str> = option_env!("CARGO_PKG_VERSION");
// ...
println!("MyProgram v{}", VERSION.unwrap_or("unknown"));
5
built -crateは、シリアル化に役立ちますすべての定型文なしで多くの貨物環境。
関連する問題
- 1. rspecでメタデータにアクセスするにはどうすればいいですか(:all)?
- 2. MSBuildスクリプトからITaskItemメタデータにアクセスするにはどうすればよいですか?
- 3. Webフォームにプログラムでアクセスするにはどうすればよいですか?
- 4. プログラムでIPTVサーバーにアクセスするにはどうすればよいですか?
- 5. プログラムでアクティビティアニメーションにアクセスするにはどうすればよいですか?
- 6. 詳細ビューからコントロールにプログラムでアクセスするにはどうすればよいですか?
- 7. ゲストマシンからホストマシンにアクセスするにはどうすればよいですか?
- 8. CasperJSからiframeにアクセスするにはどうすればよいですか?
- 9. メタデータをクロージャーベクトルに追加するにはどうすればよいですか?
- 10. 通貨フィールドを検証するにはどうすればよいですか?
- 11. iframeから親フレームにアクセスできないようにするにはどうすればよいですか?
- 12. ビジュアルスタジオファイルのメタデータを表示するにはどうすればよいですか?
- 13. rubyからmemcachedにアクセスするにはどうすればいいですか
- 14. ApiControllerからHttpContext.Itemsにアクセスするにはどうすればいいですか?
- 15. ウェブプロジェクトからフォルダにアクセスするにはどうすればいいですか
- 16. カーネルモジュール内の既知の物理アドレスのメモリにアクセスするにはどうすればよいですか?
- 17. CreateFileを使用して物理ディスクにアクセスするにはどうすればよいですか?
- 18. Oracleデータベースをリモートからアクセスできるようにするにはどうすればよいですか?
- 19. このxmlファイルの物理パスをプログラムで設定するにはどうすればよいですか?
- 20. Interface Builderで作成されたNSTableViewにプログラムでアクセスするにはどうすればよいですか?
- 21. Wordpress Media Galleryからメタデータを取得するにはどうすればよいですか?
- 22. さまざまなビデオファイル形式からメタデータを抽出するにはどうすればよいですか?
- 23. m4aファイルからチャプターのメタデータを照会するにはどうすればよいですか?
- 24. PHPを使用してHTMLファイルからメタデータを取得するにはどうすればよいですか?
- 25. JavaのJPEG画像からメタデータを削除するにはどうすればよいですか?
- 26. App Engineのアプリからスタティックページをプログラムでプログラムで作成するにはどうすればよいですか?
- 27. PHPでCorelファイルからxmlメタデータを読み取るにはどうすればよいですか?
- 28. ユーザーがphpMyAdminログインページにアクセスできないようにするにはどうすればよいですか?
- 29. ユーザーがVBAにアクセスできないようにするにはどうすればよいですか?
- 30. 同じドメインからのiframeからJSONにアクセスするにはどうすればよいですか?