web-dev-qa-db-fra.com

Existe-t-il une liste de toutes les fonctionnalités de cfg?

Rust a la capacité de vérifier la configuration lors de la construction } avec, par exemple, #[cfg(target_os = "linux")] ou if cfg!(target_os = "linux") {...}, où target_os est un feature .

Existe-t-il une liste de toutes les fonctionnalités (ou du moins couramment utilisées) pouvant être vérifiées dans Rust?


Voir la question connexe concernant attributs Existe-t-il une liste exhaustive des attributs standard n'importe où? .

9
ideasman42

La section "Compilation conditionnelle" de la référence contient une liste de configurations à définir (à partir de Rust 1.14) :

  • target_Arch avec des valeurs telles que:
    • x86 
    • x86_64
    • mips
    • powerpc
    • powerpc64
    • arm
    • aarch64
  • target_os avec des valeurs telles que:
    • windows
    • macos
    • ios
    • linux
    • Android
    • freebsd
    • dragonfly
    • bitrig
    • openbsd
    • netbsd
  • target_family avec des valeurs telles que:
    • unix
    • windows
  • unix (raccourci pour target_family)
  • windows (raccourci pour target_family)
  • target_env avec des valeurs telles que:
    • gnu
    • msvc
    • musl
    • "" (chaîne vide)
  • target_endian avec les valeurs:
    • little
    • big
  • target_pointer_width avec des valeurs telles que:
    • 32
    • 64
  • target_has_atomic avec des valeurs telles que:
    • 8
    • 16
    • 32
    • 64
    • ptr
  • target_vendor avec des valeurs telles que:
    • Apple
    • pc
    • unknown
  • test
  • debug_assertions
17
Wesley Wiser

Vous pouvez également utiliser cette commande: rustc --print target-list.

Chaque triple est formaté comme suit: {Arch} - {fournisseur} - {sys} - {abi} .

Par exemple, le triple ' arm-unknown-linux-gnueabihf ' fait référence à:

  1. architecture: bras
  2. vendeur: inconnu. Dans ce cas, aucun fournisseur n'a été spécifié.
  3. système: linux
  4. ABI: gnueabihf
1
Bo Lu

Voir aussi https://internals.Rust-lang.org/t/all-the-Rust-features/4322 pour une liste complète des fonctionnalités.

Gardez à l'esprit que certaines/la plupart des fonctionnalités ne seront pas stabilisées; elles ne seront disponibles que pendant la nuit, et seront sujettes à des améliorations/mises à niveau jusqu'à ce qu'elles soient stabilisées ou arrêtées.

La nuit, Rust est la survie du plus apte.

0
Squirrel