Traits Marker

Como o Rust sabe proibir o acesso compartilhado entre threads? A resposta está em dois traits:

  • Send: um tipo T é Send se for seguro mover um T entre threads
  • Sync: um tipo T é Sync se for seguro mover um &T entre threads

Send e Sync são unsafe traits. O compilador os derivará automaticamente para seus tipos desde que contenham apenas os tipos Send e Sync. Você também pode implementá-los manualmente quando souber que são válidos.

This slide should take about 2 minutes.
  • Pode-se pensar nesses traits como marcadores de que o tipo possui certas propriedades de segurança de threads.
  • Eles podem ser usados nas restrições genéricas como traits normais.