» Rust快速入门 » 2. 高级篇 » 2.9 文档

文档

使用 cargo doc 构建文档。使用 cargo test 运行所有测试(包括文档测试),使用 cargo test --doc 仅运行文档测试。

文档注释

注释以 /// 开始,并支持 markdown 语法。

/// Adds two numbers together.
///
/// # Examples
///
/// ```
/// let result = add_numbers(2, 3);
/// assert_eq!(result, 5);
/// ```
///
/// # Arguments
///
/// * `a` - The first number.
/// * `b` - The second number.
///
/// # Returns
///
/// The sum of `a` and `b`.
///
/// # Panics
///
/// This function will panic if the sum overflows a `u32`.
///
/// # Safety
///
/// This function is safe to call with any valid values of `a` and `b`.
///
/// # Notes
///
/// This is a simple example for demonstration purposes.
///
/// # Examples
///
/// ```
/// let result = add_numbers(10, 20);
/// println!("The sum is: {}", result);
/// ```
fn add_numbers(a: u32, b: u32) -> u32 {
    a + b
}

fn main() {
    let result = add_numbers(2, 3);
    println!("The sum is: {}", result);
}

文档属性

inline 内联

#[doc(inline)] 用于在文档化其他项时包含目标项的文档。例如:

/// # Examples
/// ```
/// use my_crate::my_module::add_numbers;
/// let result = add_numbers(2, 3);
/// assert_eq!(result, 5);
/// ```
#[doc(inline)]
pub use my_crate::my_module::add_numbers;

mod my_module {
   /// Adds two numbers together.
   pub fn add_numbers(a: u32, b: u32) -> u32 {
       a + b
   }
}

hidden 隐藏

#[doc(hidden)] 用于隐藏该项目的文档。当你想将某些内容包含在代码中但不希望其成为公共 API 文档的一部分时,可以用此属性。

#[doc(hidden)]
pub fn internal_function() {
    // 实现细节
}

/// 此函数是公共 API 的一部分。
pub fn public_function() {
    // ...
}