Rust · Avançado · Inglês · Técnico
marker trait
Trait sem métodos que apenas marca uma propriedade do tipo, como Copy, Send e Sync. O compilador e os bounds usam a marca para permitir ou barrar operações.
Onde usar
Aparece em bounds como T: Send e em traits próprios que marcam tipos válidos para uma operação.
Em código
trait Auditado {}
struct Pedido;
impl Auditado for Pedido {}
fn grava<T: Auditado>(_t: &T) {}
grava(&Pedido);
// std tem Copy, Send, Sync e SizedExemplos
Copy is a marker trait with no methods.
Copy é um marker trait sem métodos.
Define a marker trait for audited types.
Defina um marker trait para os tipos auditados.
Cuidado
Marcar não prova nada: implementar um marker trait é uma promessa sua ao compilador, e Send e Sync, por exemplo, são unsafe de implementar.
Sinônimos
trait marcador