Как вы документируете аргументы функции?
rustdoc позволяет документировать структурные поля и перечислять варианты, добавляя комментарий к документу над каждой строкой:
enum Choices {
/// The first choice.
First,
/// The second choice.
Second,
}
struct Person {
/// The person's name.
name: String,
/// The person's age.
age: u8,
}
Они будут отображаться с хорошим форматированием в HTML, сгенерированном rustdoc. Тем не менее, я не видел ни одного способа создания подобных красиво отформатированных документов для аргументов функций. Есть ли "официальный" способ их документирования или вам просто нужно описать их в произвольной форме в разделе основной документации функции?
3 ответа
Я видел следующий стиль, используемый в некоторых примерах:
/// Brief.
///
/// Description.
///
/// * `foo` - Text about foo.
/// * `bar` - Text about bar.
fn function (foo: i32, bar: &str) {}
Пока у меня тоже все работает.
Согласно документации по ржавчине, документы функций имеют следующий формат:
#![crate_name = "doc"]
/// A human being is represented here
pub struct Person {
/// A person must have a name, no matter how much Juliet may hate it
name: String,
}
impl Person {
/// Returns a person with the name given them
///
/// # Arguments
///
/// * `name` - A string slice that holds the name of the person
///
/// # Examples
///
/// ```
/// // You can have rust code between fences inside the comments
/// // If you pass --test to `rustdoc`, it will even test it for you!
/// use doc::Person;
/// let person = Person::new("name");
/// ```
pub fn new(name: &str) -> Person {
Person {
name: name.to_string(),
}
}
/// Gives a friendly hello!
///
/// Says "Hello, [name]" to the `Person` it is called on.
pub fn hello(& self) {
println!("Hello, {}!", self.name);
}
}
fn main() {
let john = Person::new("John");
john.hello();
}
Есть ли "официальный" способ их документировать?
В настоящее время нет официального способа документировать аргументы.