Lexique informatique › Programmation › Trait marqueur

Trait marqueur

Programmation Svenska → Mis à jour: 2026-09-24

Un trait Rust sans méthode, utilisé uniquement comme signal au niveau des types. Send (transférable d'un thread à l'autre sans risque), Sync (partageable entre threads sans risque), Sized (taille connue à la compilation), Copy.

Le compilateur fait respecter ces traits par le système de types : seuls les types Send peuvent être envoyés vers un autre thread. Implémentation automatique : la plupart des types sont Send et Sync d'office si leurs champs le sont. Rc<T> n'est pas Send (son comptage de références n'est pas thread-safe), Arc<T> est Send + Sync. Les traits marqueurs sont le socle de la « fearless concurrency » de Rust. Usage moderne : les auteurs de bibliothèques en définissent pour contraindre leurs API (« ce type doit être sûr pour X »). Différence avec un trait ordinaire : un marqueur n'a aucun comportement, il classe. Pour en implémenter un à la main quand le compilateur ne peut pas l'inférer : unsafe impl Send for MyType {}.

← Retour au lexique