Вступление
1.
Встреча безопасного и небезопасного
1.1.
Как относятся Безопасный и Небезопасный Rust
1.2.
Что небезопасный код может делать
1.3.
Работа с небезопасным кодом
2.
Представление данных в Rust
2.1.
repr(Rust)
2.2.
Типы экзотического размера
2.3.
Альтернативные представления
3.
Владение и время жизни
3.1.
Ссылки
3.2.
Алиасинг
3.3.
Время жизни
3.4.
Границы времени жизни
3.5.
Опускание времени жизни
3.6.
Безграничные времена жизни
3.7.
Ограничения типажей высшего порядка
3.8.
Подтипы и вариантность
3.9.
Проверка сброса
3.10.
Призрачные данные
3.11.
Деление заимствований
4.
Преобразование типов
4.1.
Неявные приведения типов
4.2.
Оператор Точка
4.3.
Явные приведения типов
4.4.
Трансмутации
5.
Работа с неинициализированной памятью
5.1.
Проверяемая неинициализированная память
5.2.
Флаги удаления
5.3.
Непроверяемая неинициализированная память
6.
Управление ресурсами на основе владения
6.1.
Конструкторы
6.2.
Деструкторы
6.3.
Утечка
7.
Размотка
7.1.
Безопасность исключений
7.2.
Отравление
8.
Многопоточность и параллелизм
8.1.
Гонки данных и их условия
8.2.
Send и Sync
8.3.
Атомарные операции
9.
Пример: Реализация Vec
9.1.
Содержимое структуры
9.2.
Выделение памяти
9.3.
Push и Pop
9.4.
Освобождение
9.5.
Разыменование
9.6.
Insert и Remove
9.7.
IntoIter
9.8.
RawVec
9.9.
Drain
9.10.
Обработка типов нулевого размера
9.11.
Получившийся код
10.
Реализация Arc и Mutex
10.1.
Arc
10.1.1.
Размещение в памяти
10.1.2.
Базовый код
10.1.3.
Клонирование
10.1.4.
Удаление
10.1.5.
Получившийся код
11.
FFI
12.
Внутри std
12.1.
#[panic_handler]
Light (default)
Rust
Coal
Navy
Ayu
The Rustonomicon
Внутри std