Rust · Avançado · Inglês · Técnico
auto trait
Trait implementado automaticamente pelo compilador para um tipo quando todos os seus campos o implementam, como Send, Sync, Unpin e UnwindSafe.
Onde usar
Explica por que structs viram Send sem você escrever nada, e por que um único campo Rc as torna não-Send.
Em código
use std::rc::Rc;
fn so_send<T: Send>(_t: T) {}
so_send(5);
so_send(String::new());
// so_send(Rc::new(1)); erro: Rc não é SendExemplos
Send is an auto trait.
Send é um auto trait.
One Rc field removes the auto trait from the struct.
Um campo Rc tira o auto trait da struct.
Cuidado
Não dá para definir novos auto traits no Rust estável; só os da biblioteca padrão existem.