Estou tentando gerar ferrugem apenas para minha API pública. Eu gostaria que isso incluísse, pub
mas não pub(crate)
itens.
Existe uma maneira de indicar isso sem precisar excluir cada item individualmente?
pub struct DocumentMe;
// I do not want to have to
// explicitly specify excluding this
#[doc(hidden)]
pub(crate) struct DoNotDocumentMe;
Como @Chayim Friedman postou nos comentários, este é um problema apenas com caixas binárias, e não com caixas de biblioteca.
Desde Rust 1.41, APIs privadas em caixas binárias são documentadas por padrão. Como a API não é exportada para ninguém (pois é um binário), Rust assume que você deseja documentar a API para consumidores do código-fonte, portanto, também documenta itens privados.
Nas caixas da biblioteca, você pode alterar o padrão e também documentar itens privados usando o
--document-private-items
sinalizador. Infelizmente, não acho que exista uma opção para não documentar itens privados para caixas binárias. No PR que alterou o padrão para Rust 1.41, foi dito que o PR pode ficar sem um sinalizador para alterar o padrão e que tal sinalizador pode ser adicionado no futuro se houver demanda para ele . Acho que isso nunca aconteceu.