unreachable |
Inaccessible |
|---|---|
| Rust | |
Syntaxe
|
macro_rules! unreachable { ($($arg:tt)*) => { ... }; } |
Description
Cette macro permet d'indiquer qu'un morceau de code ne devrait jamais être atteint, et provoque une panique si ce cas se produit à l'exécution.
Remarques
Permet d'indiquer un code inaccessible.
Ceci est utile lorsque le compilateur ne parvient pas à déterminer qu'une partie du code est inaccessible. Par exemple :
- Correspondance des bras avec des conditions de garde.
- Boucles se terminant dynamiquement.
- Itérateurs se terminant dynamiquement.
Si la détermination de l'inaccessibilité du code s'avère incorrecte, le programme s'arrête immédiatement en panique !
L'équivalent non sécurisé de cette macro est la fonction unreachable_unchecked, qui provoquera un comportement indéfini si le code est atteint.
Paniques
Cette macro déclenchera toujours la panique !, car «injoignable!» est simplement une abréviation de «panique !» avec un message fixe et spécifique.
Comme «panic!», cette macro possède une deuxième forme pour afficher des valeurs personnalisées.
Exemples
Correspondance des bras :
Itérateurs :