Как заказать комментарии к документации для типа, поступающего из нескольких блоков impl в разных модулях? - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть структура и ее реализация, определенная в 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"); }
    }
}

Когда я генерирую do c, блоки реализации отображаются в следующем порядке ( и, к сожалению, не показывая, откуда берутся блоки реализации):

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). Какое правило?

Я бы хотел, чтобы сначала были определены "первичные" функции, определенные в том же модуле, что и структура, а затем дополнительные для конкретных c случаев (которые описаны в документации).

Возможно ли это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...