Trait marcador
Um trait do Rust sem métodos, usado puramente como sinal em nível de tipo. Send (seguro para transferir entre threads), Sync (seguro para compartilhar entre threads), Sized (tamanho conhecido em tempo de compilação), Copy.
O compilador aplica os traits pelo sistema de tipos: só tipos Send podem ser enviados a outra thread. Implementação automática: a maioria dos tipos é Send e Sync automaticamente se seus campos forem. Rc<T> não é Send (a contagem de referências não é thread-safe), Arc<T> é Send+Sync. Traits marcadores são a base da "concorrência sem medo" do Rust. Uso moderno: autores de bibliotecas definem traits marcadores para restrições de API ("este tipo precisa ser seguro para X"). Diferente de um trait comum: o marcador não tem comportamento, só classificação. Para implementar um trait marcador: unsafe impl Send for MyType {}, se o compilador não conseguir inferir sozinho.