我尝试使用struct
不使用pub
密钥的外部板条箱中的 a 。
我想最好的解决办法是打开一个 PR,但我的好奇心在这里被触发了。
在 C++ 中,这很容易。我们可以做的:
#define private public
#include <...> // import public as public AND also private as public
#undef private
这将在解析代码时欺骗编译器,因此我们可以访问该类的所有方法/字段。
对 Rust 有任何想法吗?
这是一个具体的例子:
use warp::{
compression::{Compression, internal::CompressionProps},
reply::Response,
};
pub enum CompressionAlgorithms {
Brotli(Compression<dyn Fn(CompressionProps) -> Response>),
Deflate(Compression<dyn Fn(CompressionProps) -> Response>),
Gzip(Compression<dyn Fn(CompressionProps) -> Response>),
}
编译错误:error[E0603]: module `internal` is private
- 在这个例子中,我们试图导入一个模块而不是一个结构......不确定它是否会改变任何东西。
不幸的是,如果我们不拥有该板条箱,则错误 E0603 的文档并没有真正的帮助。Rust参考中关于可见性和隐私的文档也是如此。