include |
Inclus |
|---|---|
| Rust | |
Syntaxe
|
macro_rules! include { ($file:expr $(,)?) => { ... }; } |
Description
Cette macro permet d'inclure le contenu d'un fichier externe en tant qu'expression ou élément, selon le contexte dans lequel elle est utilisée.
Remarques
Analyse un fichier comme une expression ou un élément selon le contexte.
Avertissement : Pour les projets Rust multi-fichiers, la macro include! n'est probablement pas la solution idéale. Généralement, les projets Rust multi-fichiers utilisent des modules.
Le fichier inclus est placé dans le code environnant de manière peu judicieuse. Si le fichier inclus est analysé comme une expression et que des variables ou fonctions partagent des noms dans les deux fichiers, les variables ou fonctions pourraient être différentes de celles attendues par le fichier inclus.
Le fichier inclus est situé par rapport au fichier courant (de la même manière que les modules sont trouvés). Le chemin fourni est interprété de manière spécifique à la plateforme lors de la compilation. Ainsi, par exemple, une invocation avec un chemin Windows contenant des barres obliques inverses \ ne compilerait pas correctement sous Unix.
Utilisations
La macro include! a principalement deux objectifs. Elle permet d'inclure la documentation écrite dans un fichier séparé, ainsi que les artefacts de build, généralement issus du script build.rs.
Lorsque vous utilisez la macro include pour inclure des portions de documentation, n'oubliez pas que le fichier inclus doit respecter une syntaxe Rust valide. Il est également possible d'utiliser la macro include_str avec #![doc = include_str!("...")] (au niveau du module) ou #[doc = include_str!("...")] (au niveau de l'élément) pour inclure la documentation d'un fichier texte brut ou Markdown.
Exemples
Supposons qu'il y ait deux fichiers dans le même répertoire avec le contenu suivant (fichiers letters.in) :
- ['a', 'b', 'c']
- .iter()
- .cycle()
- .take(6)
- .collect::<String>()
Fichier 'main.rs' :
La compilation de « main.rs » et l'exécution du binaire résultant afficheront « abcabc ».