2.8. プロジェクトドキュメントの構築


注記

rustdoc ではなく cargo doc の使用を考慮してください。このコマンド cargo doc は、rustdoc ユーティリティーを使用します。

注記

cargo doc パブリック関数、変数、メンバーに対してのみ、ドキュメントコメントを抽出します。

Rust コードには、ドキュメントへの抽出用のコメントを含めることができます。コメントは Markdown 言語に対応しています。

cargo ツールを使用してプロジェクトのドキュメンテーションを構築するには、プロジェクトディレクトリーに移動し、cargo ツールを実行します。

  • Red Hat Enterprise Linux 7 の場合:

    $ scl enable rust-toolset-1.35 'cargo doc --no-deps'
    Copy to Clipboard Toggle word wrap
  • Red Hat Enterprise Linux 8 の場合:

    $ cargo doc --no-deps
    Copy to Clipboard Toggle word wrap

これにより、プロジェクトのソースコードにある特別なコメントから保存したドキュメントが抽出され、HTML 形式でドキュメントが書き込まれます。

  • サードパーティーライブラリーなど、生成されたドキュメントの依存関係を含める --no-deps オプションを省略します。
  • ブラウザーで生成されたドキュメントを開く --open オプションを追加します。

例2.7 プロジェクトドキュメントの構築

この例では、例2.6「プロジェクトへの依存関係の追加および cargo で構築」 に従って依存関係で Rust プロジェクト helloworld を正常にビルドしていることを前提としています。

ディレクトリー helloworld に移動し、以下のソースコードが含まれるファイル src/main.rs を編集します。

//! This is a hello-world program.
extern crate time;

/// Prints a greeting to `stdout`.
pub fn print_output() {
    println!("Hello, world!");
    println!("Time is: {}", time::now().rfc822());
}

/// The program entry point.
fn main() {
    print_output();
}
Copy to Clipboard Toggle word wrap

このコードには、パブリック関数 print_output() が含まれるようになりました。helloworld プログラム、print_output() 関数、および main() 関数にはドキュメントコメントがあります。

cargo doc コマンドを実行し、プロジェクトのドキュメンテーションを構築します。

  • Red Hat Enterprise Linux 7 の場合:

    $ scl enable rust-toolset-1.35 'cargo doc --no-deps'
     Documenting helloworld v0.1.0 (file:///home/vslavik/helloworld)
        Finished dev [unoptimized + debuginfo] target(s) in 0.31 secs
    Copy to Clipboard Toggle word wrap
  • Red Hat Enterprise Linux 8 の場合:

    $ cargo doc --no-deps
     Documenting helloworld v0.1.0 (file:///home/vslavik/helloworld)
        Finished dev [unoptimized + debuginfo] target(s) in 0.31 secs
    Copy to Clipboard Toggle word wrap

インストールされていない場合は、ツリー ツール (デフォルトの Red Hat Enterprise Linux リポジトリーで利用できます) をインストールします。

# yum install tree
Copy to Clipboard Toggle word wrap

結果を確認します。

$ tree
.
├── Cargo.lock
├── Cargo.toml
├── src
│   └── main.rs
└── target
...
    └── doc
...
        ├── helloworld
        │   ├── fn.print_output.html
        │   ├── index.html
        │   ├── print_output.v.html
        │   └── sidebar-items.js
...
        └── src
            └── helloworld
                └── main.rs.html

12 directories, 32 files
Copy to Clipboard Toggle word wrap

cargo はプロジェクトのドキュメンテーションを構築します。このドキュメントを表示するには、ブラウザー target/doc/helloworld/index.html でファイルを開きます。生成されたドキュメントには、公開されていないため、main() 関数に関する記述は含まれません。

--no-deps オプションを指定せずに cargo doc コマンドを実行して、依存関係ライブラリーの time および libc を含むプロジェクトのドキュメントを構築します。

  • Red Hat Enterprise Linux 7 の場合:

    $ scl enable rust-toolset-1.35 'cargo doc'
     Documenting libc v0.2.32
     Documenting time v0.1.38
     Documenting helloworld v0.1.0 (file:///home/vslavik/helloworld)
        Finished dev [unoptimized + debuginfo] target(s) in 3.41 secs
    Copy to Clipboard Toggle word wrap
  • Red Hat Enterprise Linux 8 の場合:

    $ cargo doc
     Documenting libc v0.2.32
     Documenting time v0.1.38
     Documenting helloworld v0.1.0 (file:///home/vslavik/helloworld)
        Finished dev [unoptimized + debuginfo] target(s) in 3.41 secs
    Copy to Clipboard Toggle word wrap

以下の tree コマンドを使用して、フォルダー構造を確認します。

$ tree
...
92 directories, 11804 files
$ ls -d target/doc/*/
target/doc/helloworld/  target/doc/implementors/  target/doc/libc/  target/doc/src/  target/doc/time/
Copy to Clipboard Toggle word wrap

作成されるドキュメントは、依存関係ライブラリーの time および libc にも対応し、それぞれ target/doc/ ディレクトリーに別のサブディレクトリーとして存在します。

関連資料

cargo doc ツールおよびその機能の詳しい説明は、本書の対象外となっています。詳細は、以下に記載のドキュメントを参照してください。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat