Feature フラグの存在を伝える
syn クレートのドキュメント より:
buffer
モジュールは parsing
フラグが有効な場合のみ利用できると一目で分かります。
Cargo.toml
docs.rs で doc_cfg
属性を有効にします:
Cargo.toml
[package.metadata.docs.rs]
all-features = true
targets = ["x86_64-unknown-linux-gnu"]
rustdoc-args = ["--cfg", "doc_cfg"]
ソース
#[cfg(doc(..)] が feature を表示する機能です。 Unstable なフィーチャーなので有効化します:
src/lib.rs
#![cfg_attr(doc_cfg, feature(doc_cfg))]
cfg_attr
ガードにより、doc_cfg
が未定義の場合は無視しています。
buffer
モジュールの宣言は:
src/lib.rs
#[cfg(feature = "parsing")]
#[cfg_attr(doc_cfg, doc(cfg(feature = "parsing")))]
pub mod buffer;
これで docs.rs では冒頭のように表示されます:
ローカルでも doc_cfg
フィーチャーを使う
コメントで教えていただきました。ありがとうございます!
$ # ドキュメント生成
$ cargo +nightly rustdoc -- --cfg doc_cfg
$ # ビルド後にブラウザで開く
$ cargo +nightly rustdoc --open -- --cfg doc_cfg
Nightly を使っているなら、以下のようなエイリアスも有効です:
.cargo/config
[alias]
d = "rustdoc -- --cfg doc_cfg"
do = "rustdoc --open -- --cfg doc_cfg"
ただしクレートによって
#[doc(cfg(..))]
に使っている属性名は異なります!
doc_cfg
の他にdocsrs
も一般的な名称です。