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ù? .
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
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 à:
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.