Маркерні трейти

Як Rust знає, що потрібно заборонити спільний доступ до потоків? Відповідь полягає у двох трейтах:

  • Send: тип T є Send, якщо безпечно переміщувати T через межу потоку.
  • Sync: тип T є Sync, якщо безпечно переміщувати &T через межу потоку.

Send та Sync є небезпечними трейтами. Компілятор автоматично виведе їх для ваших типів, якщо вони містять лише типи Send і Sync. Ви також можете реалізувати їх вручну, якщо знаєте, що це допустимо.

This slide should take about 2 minutes.
  • Ці трейти можна розглядати як маркери того, що тип має певні властивості безпеки потоків.
  • Їх можна використовувати в загальних обмеженнях як звичайні трейти.