Как включить частные модули при создании документации через 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