Rust: параметризуем мутабельность через маркеры и ассоциированные типы

GuDron

dumpz.ws
Admin
Регистрация
28 Янв 2020
Сообщения
9,092
Реакции
1,534
Credits
31,434
Rust: параметризуем мутабельность через маркеры и ассоциированные типы
photo_2025-01-29_11-17-10.jpg
Borrow-checker — отличный секюрити, который очень эффективен, если мы находимся в безопасном Rust. Его поведение отлично описано в RustBook, и, по крайней мере, я почти никогда не сталкиваюсь с придирками, которым я бы не был благодарен.

Но вот когда нужно написать семантически-безопасный API над функциями и данными, которые вообще не безопасны — у меня всё стало валиться из рук. Последние пару дней я потратил на то, чтобы придумать элегантный способ параметризации мутабельности. Над тем, чтобы на уровне API сохранялась семантика — зависимость изменяемости полей друг от друга. Даже если на самом деле они живут сами по себе.
Скрытое содержимое могут видеть только пользователи групп(ы): Premium, Местный, Свои