Zoeken…


Invoering

De compiler van Rust heeft verschillende handige functies om uw project snel en gemakkelijk te documenteren. U kunt compilerlints gebruiken om documentatie voor elke functie af te dwingen en tests laten inbouwen in uw voorbeelden.

Syntaxis

  • /// Opmerking buitenste documentatie (van toepassing op het onderstaande item)

  • //! Opmerking binnenste documentatie (van toepassing op het bijgevoegde item)

  • vrachtdocument # Genereert documentatie voor dit bibliotheekkrat.

  • vrachtdocument - open # Genereert documentatie voor dit bibliotheekkrat en open browser.

  • cargo doc -p CRATE # Genereert alleen documentatie voor de opgegeven krat.

  • cargo doc --no-deps # Genereert documentatie voor deze bibliotheek en geen afhankelijkheden.

  • ladingstest # Voert eenheids- en documentatie-tests uit.

Opmerkingen

Dit gedeelte van het 'Rust Book' kan nuttige informatie bevatten over documentatie- en documentatietests.

Documentatiereacties kunnen worden toegepast op:

  • modules
  • structs
  • enums
  • methoden
  • functies
  • Eigenschappen en eigenschappen

Documentatie Linten

Om ervoor te zorgen dat alle mogelijke items worden gedocumenteerd, kunt u de link missing_docs gebruiken om waarschuwingen / fouten van de compiler te ontvangen. Om waarschuwingen voor de hele bibliotheek te ontvangen, plaatst u dit kenmerk in uw lib.rs bestand:

#![warn(missing_docs)]

U kunt ook fouten ontvangen voor ontbrekende documentatie met dit lint:

#![deny(missing_docs)]

Standaard zijn missing_docs toegestaan, maar u kunt ze expliciet toestaan met dit kenmerk:

#![allow(missing_docs)]

Dit kan handig zijn om in één module te plaatsen om ontbrekende documentatie voor één module toe te staan, maar weiger het in alle andere bestanden.

Documentatie opmerkingen

Rust biedt twee soorten documentatie-opmerkingen: opmerkingen over de interne documentatie en opmerkingen over de externe documentatie. Voorbeelden van elk worden hieronder gegeven.

Innerlijke documentatie opmerkingen

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

Opmerkingen buiten de documentatie

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

Conventies

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

Documentatietests

Code in documentatiecommentaar wordt automatisch uitgevoerd door cargo test . Deze staan bekend als "documentatietests" en helpen ervoor te zorgen dat uw voorbeelden werken en gebruikers van uw krat niet misleiden.

Je kunt relatief uit de extern crate mycrate; importeren (alsof er een verborgen extern crate mycrate; bovenaan het voorbeeld)

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

Als uw code mogelijk niet correct wordt uitgevoerd in een documentatie-test, kunt u het no_run kenmerk als volgt gebruiken:

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

Je kunt ook aangeven dat je code als volgt in paniek moet raken:

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


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow