Suche…


Einführung

Der Compiler von Rust bietet mehrere nützliche Funktionen, mit denen Sie Ihr Projekt schnell und einfach dokumentieren können. Sie können Compiler-Lints verwenden, um die Dokumentation für jede Funktion durchzusetzen und Tests in Ihre Beispiele einbauen zu lassen.

Syntax

  • /// Äußerer Dokumentationskommentar (gilt für den folgenden Artikel)

  • //! Innerer Dokumentationskommentar (gilt für das beiliegende Element)

  • cargo doc # Erzeugt Dokumentation für diese Bibliothekskiste.

  • cargo doc --open # Erzeugt Dokumentation für diese Bibliothekskiste und einen geöffneten Browser.

  • cargo doc -p CRATE # Erzeugt nur Dokumentation für die angegebene Kiste.

  • cargo doc --no-deps # Erzeugt Dokumentation für diese Bibliothek und keine Abhängigkeiten.

  • Ladungstest # Führt Unit-Tests und Dokumentationstests durch.

Bemerkungen

Dieser Abschnitt des "Rust Book" kann nützliche Informationen zur Dokumentation und zu Dokumentationstests enthalten.

Dokumentationskommentare können angewendet werden auf:

  • Module
  • Structs
  • Aufzählungen
  • Methoden
  • Funktionen
  • Eigenschaften und Methodenmethoden

Dokumentationsunterlagen

Um sicherzustellen, dass alle möglichen Elemente dokumentiert sind, können Sie den Link missing_docs , um Warnungen / Fehler vom Compiler zu erhalten. Platzieren Sie dieses Attribut in Ihrer lib.rs Datei, um Warnungen in der lib.rs Bibliothek zu erhalten:

#![warn(missing_docs)]

Sie können auch Fehler für fehlende Dokumentation mit diesem Flusen erhalten:

#![deny(missing_docs)]

Standardmäßig sind missing_docs zulässig, Sie können sie jedoch explizit mit diesem Attribut zulassen:

#![allow(missing_docs)]

Dies kann nützlich sein, wenn Sie ein Modul in einem Modul ablegen, um fehlende Dokumentation für ein Modul zuzulassen, dies aber in allen anderen Dateien ablehnen.

Kommentare zur Dokumentation

Rust bietet zwei Arten von Dokumentationskommentaren: Kommentare zur inneren Dokumentation und Kommentare zur äußeren Dokumentation. Beispiele dafür sind unten aufgeführt.

Innere Dokumentationskommentare

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.
    }
}

Äußere Dokumentationskommentare

/// 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)
}

Konventionen

/// 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 {
    ...
}

Dokumentationstests

Code in Dokumentationskommentaren wird automatisch durch den cargo test ausgeführt. Diese werden als "Dokumentationstests" bezeichnet und helfen sicherzustellen, dass Ihre Beispiele funktionieren und die Nutzer Ihrer Kiste nicht irregeführt werden.

Sie können relative aus der extern crate mycrate; importieren (als ob eine extern crate mycrate; oben im Beispiel).

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

Wenn Ihr Code in einem Dokumentationstest möglicherweise nicht ordnungsgemäß ausgeführt wird, können Sie das Attribut no_run wie no_run :

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

Sie können auch angeben, dass Ihr Code wie folgt in Panik gerät:

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


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow