Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

문서화

target/doc에 문서를 빌드하려면 cargo doc을 사용하세요. cargo doc --open은 웹 브라우저에서 문서를 자동으로 엽니다.

모든 테스트(문서 테스트 포함)를 실행하려면 cargo test를, 문서 테스트만 실행하려면 cargo test --doc을 사용하세요.

이러한 명령어들은 필요에 따라 rustdoc(및 rustc)을 적절히 호출합니다.

문서 주석

문서 주석은 문서화가 필요한 큰 프로젝트에 매우 유용합니다. rustdoc을 실행할 때, 이 주석들이 문서로 컴파일됩니다. 이들은 ///로 표시되며 Markdown을 지원합니다.

#![crate_name = "doc"]

/// 여기에 사람(human being)이 표현됩니다.
pub struct Person {
    /// 줄리엣이 아무리 싫어하더라도 사람은 이름을 가져야 합니다.
    name: String,
}

impl Person {
    /// 주어진 이름으로 사람을 생성합니다.
    ///
    /// # Examples
    ///
    /// ```
    /// // 주석 내부의 울타리(fence) 사이에 Rust 코드를 넣을 수 있습니다.
    /// // `rustdoc`에 --test를 전달하면, 코드 테스트까지 해줍니다!
    /// use doc::Person;
    /// let person = Person::new("name");
    /// ```
    pub fn new(name: &str) -> Person {
        Person {
            name: name.to_string(),
        }
    }

    /// 친절하게 인사합니다!
    ///
    /// 호출된 `Person`의 이름을 사용하여 "안녕, [name](Person::name)"이라고 말합니다.
    pub fn hello(&self) {
        println!("안녕, {}!", self.name);
    }
}

fn main() {
    let john = Person::new("존");

    john.hello();
}

테스트를 실행하려면 먼저 코드를 라이브러리로 빌드한 다음, rustdoc이 각 문서 테스트 프로그램에 링크할 수 있도록 라이브러리 위치를 알려주어야 합니다.

$ rustc doc.rs --crate-type lib
$ rustdoc --test --extern doc="libdoc.rlib" doc.rs

문서 속성

다음은 rustdoc과 함께 사용되는 가장 일반적인 #[doc] 속성의 몇 가지 예입니다.

inline

별도의 페이지로 링크하는 대신 문서를 인라인으로 표시하는 데 사용됩니다.

#[doc(inline)]
pub use bar::Bar;

/// bar 문서
pub mod bar {
    /// Bar에 대한 문서
    pub struct Bar;
}

no_inline

별도의 페이지나 다른 곳으로 링크되는 것을 방지하는 데 사용됩니다.

// libcore/prelude에서 가져온 예시
#[doc(no_inline)]
pub use crate::mem::drop;

hidden

이를 사용하면 rustdoc이 해당 항목을 문서에 포함하지 않도록 합니다.

// futures-rs 라이브러리에서 가져온 예시
#[doc(hidden)]
pub use self::async_await::*;

문서화를 위해 커뮤니티에서는 rustdoc이 널리 사용됩니다. 표준 라이브러리 문서를 생성하는 데 사용되는 도구이기도 합니다.

참고: