dra*_*tis 10 macros rust rust-cargo rustdoc
从Rust 1.6.0开始,生成的文档隐藏了每个宏模式的实现:
有没有办法隐藏Cargo生成的文档中的一些模式?
macro_rules! mc {
// hide this entire pattern
(@impl, $arg:expr) => { 42 + $arg };
// but not this one
($arg:expr) => { mc!(@impl, $arg) };
}
Run Code Online (Sandbox Code Playgroud)
我想这是最佳解决方案:
/// Not meant to be called directly
#[doc(hidden)]
#[macro_export]
macro_rules! hidden {
( $hidden_rule1:expr ) => { ... };
( $hidden_rule2:expr ) => { ... };
...
}
#[macro_export]
macro_rules! public {
( $public:expr ) => ( hidden!($public) );
}
Run Code Online (Sandbox Code Playgroud)
这使用一个单独的hidden
宏(可能需要公开),但不是文档的一部分.应该隐藏的所有规则都将被隐藏,并且公共的规则将在public
作为文档一部分的宏中可见.