ExpertiDict

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

auto trait

/ˈɔːtoʊ treɪt/substantivo

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 é Send

Exemplos

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.

Veja também

Todos os termos de Rust