Маркерні трейти
Як Rust знає, що потрібно заборонити спільний доступ до потоків? Відповідь полягає у двох трейтах:
Send
: типT
єSend
, якщо безпечно переміщуватиT
через межу потоку.Sync
: типT
єSync
, якщо безпечно переміщувати&T
через межу потоку.
Send
та Sync
є небезпечними трейтами. Компілятор автоматично виведе їх для ваших типів, якщо вони містять лише типи Send
і Sync
. Ви також можете реалізувати їх вручну, якщо знаєте, що це допустимо.
This slide should take about 2 minutes.
- Ці трейти можна розглядати як маркери того, що тип має певні властивості безпеки потоків.
- Їх можна використовувати в загальних обмеженнях як звичайні трейти.