Как включить частные модули при создании документации через Cargo?
В настоящее время я работаю над проектом с Rust and Cargo. Он работает хорошо, но я столкнулся с небольшой проблемой: для повторного использования кода большая часть моего проекта находится внутри ящика lib. В этом ящике много вещей является частным. Поэтому, когда я делаю cargo doc
, у меня просто есть документация для общедоступного, экспортированного материала... это действительно здорово, потому что легко увидеть, что экспортируется, а что нет.
Но я должен признать: я пропустил полную документацию по всему проекту в целях развития...
Ответы
Ответ 1
Это можно сделать, передав аргументы в rustdoc, после --
, например.
cargo rustdoc -- \
--no-defaults \
--passes strip-hidden \
--passes collapse-docs \
--passes unindent-comments \
--passes strip-priv-imports
Основываясь на ответе @Shepmaster, нет необходимости в ручном копировании.
Ответ 2
Возможно, вы не сможете сделать это с помощью Cargo сегодня, есть обходной путь, если вы используете rustdoc напрямую.
Запустите cargo doc -v
и запишите команду rustdoc, которую она запускает:
$ cargo doc -v
Compiling docz v0.0.1 (file:///private/tmp/docz)
Running `rustdoc src/lib.rs -o /private/tmp/docz/target/doc --crate-name docz -L dependency=/private/tmp/docz/target/debug -L dependency=/private/tmp/docz/target/debug/deps`
Затем добавьте --no-defaults --passes strip-hidden --passes collapse-docs --passes unindent-comments
к команде:
rustdoc src/lib.rs -o /private/tmp/docz/target/doc --crate-name docz \
-L dependency=/private/tmp/docz/target/debug \
-L dependency=/private/tmp/docz/target/debug/deps \
--no-defaults \
--passes strip-hidden --passes collapse-docs --passes unindent-comments
Ответ 3
Теперь это проще, просто используйте:
cargo rustdoc -- --document-private-items
Ответ 4
Используйте груз для документирования личных вещей:
cargo doc --document-private-items