我正在使用Rust编写一个库,该库公开了一个使用私有模块的函数。现在,我可以使用以下命令呈现此私有模块的文档:
cargo doc --document-private-items
现在,我有一个名为
然而,当我运行
我怎样才能为函数
reader
的模块,其中包含一些函数的结构体。该模块本身使用mod reader
从lib.rs
文件中导入,并具有一个类型,类似于:use reader:: BufferedOpenTypeFontReader;
现在,我想向BufferedOpenTypeFontReader
结构添加一些文档,这是它的实现: /// A buffered `&[u8]` reader for reading an OpenType Font (OTF).
pub struct BufferedOpenTypeFontReader<'a> {
reader: BufReader<&'a [u8]>,
}
//# The basic implementation of the `OpenTypeFontByteSliceReader` struct.
impl<'a> BufferedOpenTypeFontReader<'a> {
//# Defines the constants which are required in this `impl` block.
const U32_SIZE: usize = 4; // The amount of bytes in a `u32`.
/// Create a new `BufferedOpenTypeFontReader<'a>` implementation which reads from the given `&[u8]`.
///
/// # Examples:
/// ```
/// use otfdecode::reader::BufferedOpenTypeFontReader;
///
/// let otf_bytes = [];
/// let otf_reader = BufferedOpenTypeFontReader::new(otf_bytes);
/// ```
pub fn new(data: &'a [u8]) -> Self {
Self {
reader: BufReader::new(data),
}
}
pub fn read_u32(&mut self) -> u32 {
let mut buffer = [0u8; Self::U32_SIZE];
self.reader.read_exact(&mut buffer).unwrap();
u32::from_be_bytes(buffer)
}
}
然而,当我运行
cargo test
时,我遇到了以下问题:failures:
---- src\reader.rs - reader::BufferedOpenTypeFontReader::new (line 42) stdout ----
error[E0603]: module `reader` is private
--> src\reader.rs:43:16
|
4 | use otfdecode::reader::BufferedOpenTypeFontReader;
| ^^^^^^ private module
|
note: the module `reader` is defined here
--> C:\Users\kevin\Development\github.com\kdeconinck\OTFDecode\app\src\lib.rs:30:1
|
30 | mod reader;
|
我怎样才能为函数
new
编写文档测试而不使模块reader
公开?