Attributs Cargo dans le développement Rust

Beginner

This tutorial is from open-source community. Access the source code

Introduction

Dans ce laboratoire, il est expliqué que les attributs crate_type et crate_name en Rust n'ont aucun effet lorsqu'on utilise Cargo, le gestionnaire de packages Rust largement utilisé pour les projets Rust.

Note : Si le laboratoire ne spécifie pas de nom de fichier, vous pouvez utiliser n'importe quel nom de fichier que vous voulez. Par exemple, vous pouvez utiliser main.rs, le compiler et l'exécuter avec rustc main.rs &&./main.

Crates

L'attribut crate_type peut être utilisé pour indiquer au compilateur si un crate est un binaire ou une bibliothèque (et même quel type de bibliothèque), et l'attribut crate_name peut être utilisé pour définir le nom du crate.

Cependant, il est important de noter que les attributs crate_type et crate_name n'ont aucun effet lorsqu'on utilise Cargo, le gestionnaire de packages Rust. Étant donné que Cargo est utilisé pour la majorité des projets Rust, cela signifie que les utilisations réelles de crate_type et crate_name sont relativement limitées.

// Ce crate est une bibliothèque
#![crate_type = "lib"]
// La bibliothèque s'appelle "rary"
#![crate_name = "rary"]

pub fn public_function() {
    println!("appelé `public_function()` de rary");
}

fn private_function() {
    println!("appelé `private_function()` de rary");
}

pub fn indirect_access() {
    print!("appelé `indirect_access()` de rary, qui\n> ");

    private_function();
}

Lorsque l'attribut crate_type est utilisé, on n'a plus besoin de passer le drapeau --crate-type à rustc.

$ rustc lib.rs
$ ls lib*
library.rlib

Résumé

Félicitations ! Vous avez terminé le laboratoire Crates. Vous pouvez pratiquer d'autres laboratoires dans LabEx pour améliorer vos compétences.