我在其他模块中定义了一个结构及其实现main.rs
以及在其他模块中定义的补充实现:
/// Bla bla.
pub struct Data {
val: i32,
}
/// Primary functions.
impl Data {
pub fn new(val: i32) -> Data { Data { val } }
pub fn get(&self) -> i32 { self.val }
}
/// FFI doc.
pub mod ffi {
use super::Data;
/// Additional functions for special cases.
impl Data {
pub fn adapt(&mut self) { self.val += 1; }
}
}
/// Test doc.
pub mod test {
use super::Data;
/// Functions useful for tests.
impl Data {
pub fn report(&self) { println!("hello"); }
}
}
当我生成文档时,实现块按此顺序显示(不幸的是,没有显示实现块的来源):
impl Data
Additional functions for restricted use.
pub fn adapt(&mut self)
impl Data
Functions useful for tests.
pub fn report(&self)
impl Data
Primary functions.
pub fn new(val: i32) -> Data
pub fn get(&self) -> i32
这似乎不是相对或绝对模块名称的字母顺序(无论箱子名称是aaa
还是都无关紧要zzz
)。规则是什么?
我希望首先在与结构相同的模块中定义的“主要”函数,然后是针对特定情况的附加函数(在文档中进行了描述)。
可能吗?