ExpertiDict

Rust · Avançado · Inglês · Técnico

marker trait

/ˈmɑːɹkɚ treɪt/substantivo

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 Sized

Exemplos

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

Veja também

Todos os termos de Rust