수색…


소개

Rust의 컴파일러에는 프로젝트를 쉽고 빠르게 문서화 할 수있는 몇 가지 편리한 기능이 있습니다. 컴파일러 lint를 사용하여 각 함수에 대한 문서를 적용하고 예제에 테스트를 내장 할 수 있습니다.

통사론

  • /// 외부 문서 주석 (아래 항목에 적용)

  • //! 내부 문서 주석 (둘러싼 항목에 적용)

  • cargo doc #이 라이브러리 상자에 대한 문서를 생성합니다.

  • cargo doc --open #이 라이브러리 상자 및 공개 브라우저에 대한 문서를 생성합니다.

  • cargo doc -p CRATE # 지정된 크레이트에 대해서만 문서를 생성합니다.

  • cargo doc --no-deps #이 라이브러리에 대한 문서를 생성하며 종속성은 없습니다.

  • cargo test # 단위 테스트 및 문서 테스트를 실행합니다.

비고

'Rust Book' 의이 섹션에는 문서 및 문서 테스트에 대한 유용한 정보가 포함되어있을 수 있습니다.

문서 주석은 다음에 적용될 수 있습니다.

  • 모듈
  • 구조물
  • 열거 형
  • 행동 양식
  • 기능들
  • 특성 및 특성 방법

문서의 보풀

가능한 모든 항목을 문서화하려면 missing_docs 링크를 사용하여 컴파일러에서 경고 / 오류를 수신 할 수 있습니다. 라이브러리 전체에 경고를 받으려면 lib.rs 파일에 다음 속성을 lib.rs 하십시오.

#![warn(missing_docs)]

이 lint를 사용하여 누락 된 문서에 대한 오류를 수신 할 수도 있습니다.

#![deny(missing_docs)]

기본적으로 missing_docs 가 허용되지만이 속성을 사용하여 명시 적으로 허용 할 수 있습니다.

#![allow(missing_docs)]

이는 하나의 모듈을 하나의 모듈에 대해 누락 된 문서를 허용하지만 다른 모든 파일에서는 거부하는 데 유용 할 수 있습니다.

문서 코멘트

Rust는 내부 문서 주석과 외부 문서 주석의 두 가지 유형의 문서 주석을 제공합니다. 각각의 예가 아래에 나와 있습니다.

내부 문서 주석

mod foo {
    //! Inner documentation comments go *inside* an item (e.g. a module or a 
    //! struct). They use the comment syntax //! and must go at the top of the
    //! enclosing item. 
    struct Bar {
        pub baz: i64
        //! This is invalid. Inner comments must go at the top of the struct,
        //! and must not be placed after fields.
    }
}

외부 문서 주석

/// Outer documentation comments go *outside* the item that they refer to.
/// They use the syntax /// to distinguish them from inner comments.
pub enum Test {
    Success,
    Fail(Error)
}

협약

/// In documentation comments, you may use **Markdown**.
/// This includes `backticks` for code, *italics* and **bold**.
/// You can add headers in your documentation, like this:
/// # Notes
/// `Foo` is unsuitable for snafucating. Use `Bar` instead.
struct Foo {
    ...
}

/// It is considered good practice to have examples in your documentation
/// under an "Examples" header, like this:
/// # Examples
/// Code can be added in "fences" of 3 backticks.
///
/// ```
/// let bar = Bar::new();
/// ```
///
/// Examples also function as tests to ensure the examples actually compile.
/// The compiler will automatically generate a main() function and run the
/// example code as a test when cargo test is run.
struct Bar {
    ...
}

문서 테스트

문서 주석의 코드는 cargo test 의해 자동으로 실행됩니다. 이를 "문서 테스트"라고하며, 귀하의 사례가 효과가 있고 귀하의 나무 상자 사용자를 오도하지 않도록 도와줍니다.

크레이트 루트에서 친척을 가져올 수 있습니다 (예 : 숨겨진 extern crate mycrate; 가있는 경우)

/// ```
/// use mycrate::foo::Bar;
/// ```

문서 테스트에서 코드가 제대로 실행되지 않으면 다음과 같이 no_run 속성을 사용할 수 있습니다.

/// ```no_run
/// use mycrate::NetworkClient;
/// NetworkClient::login("foo", "bar");
/// ```

당신은 또한 당신의 코드는 다음과 같이 당황해야 함을 표시 할 수 있습니다 :

/// ```should_panic
/// unreachable!();
/// ```


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow