如何配置Rust rustdoc仅显示常量类型、隐藏常量实际值
rustdoc隐藏常量实际值的配置方法
目前稳定版Rust没有提供全局配置项直接关闭常量值展示,可根据你使用的工具链版本选择对应方案:
稳定版通用方案
把常量的求值逻辑封装到加了#[doc(hidden)]标记的const fn里,目标常量直接赋值为该const fn的调用结果即可。
rustdoc不会对#[doc(hidden)]标记的const fn做跨函数的常量求值展开,最终生成的文档只会显示常量的类型声明,不会输出计算后的实际值,和标准库的展示效果完全一致。
示例:
// 该函数不会出现在对外文档中,专门用来封装常量计算逻辑 #[doc(hidden)] const fn compute_const_val() -> u32 { // 任意多行复杂const计算逻辑都可以写在这里,不会被渲染到文档页面 let mut total = 0; let mut idx = 0; while idx < 200 { total += idx; idx += 1; } total } pub struct AppConfig; impl AppConfig { /// 配置项总容量 pub const CAPACITY: u32 = compute_const_val(); }
这个方案不会影响运行性能,const fn会在编译期完成求值,封装用的const fn可以写成私有,不需要对外暴露。
Nightly工具链全局方案
如果使用Nightly版本Rust,可以直接用rustdoc提供的不稳定参数全局隐藏所有常量的实际值,不需要修改任何业务代码,生成文档时执行如下命令即可:
RUSTDOCFLAGS="-Z unstable-options --hide-constant-values" cargo +nightly doc
开启该参数后,所有公开常量的文档都只会展示pub const 常量名: 类型的声明,不会附带求值后的实际值,Rust官方标准库的文档就是用这个配置实现常量值隐藏效果的。
内容的提问来源于stack exchange,提问作者isaacholt100
相关产品推荐
相关产品推荐

