Глава 1. Введение в язык Rust
Общий обзор языка программирования Rust. Установка
Первая программа
Глава 2. Основы Rust
Структура программы
Переменные
Типы данных
Преобразование типов данных
Арифметические операции
Поразрядные операции
Условные выражения
Конструкция if..else
Конструкция match
Циклы
Функции
Параметры функции
Возвращение значения из функции
Константы
Анонимные функции и блоки кода
Замыкания
Тип функции
Функция как параметр и результат другой функции
Глава 3. Составные типы данных
Кортежи
Массивы
Структуры
Структуры-кортежи
Перечисления Enum
Последовательность Range
Паттерны и конструкция match
Паттерны и конструкция if let
Глава 4. Ссылки и Ownership
Контекст/область видимости
Устройство памяти в Rust. Стек и куча
Ownership
Ссылки
Изменяемые ссылки
Владение и заимствование и замыкания
Глава 5. Объектно-ориентированное программирование
Методы
Ассоциированные функции
Trait
Trait как параметр и результат функции
Generics. Обобщенные типы
Generics. Обобщенные функции и методы
Trait bound
Глобальная реализация трейтов
Перегрузка операторов
Ассоциированные типы
Объекты трейтов
Условное соответствие трейтов
Программирование на уровне типа
Трейты Debug и fmt::Display
Глава 6. Время жизни ссылки
Аннотации и время жизни ссылки
Аннотации ссылок в функциях
Аннотации ссылок в структурах
Аннотации ссылок в определениях методов
Статическое время жизни
Глава 7. Коллекции
Вектор
String
HashMap
HashSet
Slice
Итераторы
Управление коллекциями
Глава 8. Модули
Определение модулей. Приватность и публичность
Вложенные модули и ключевое слово super
Оператор use и подключение модулей
Определение модуля во внешнем файле
Глава 9. Обработка ошибок
Макрос panic!
Тип Result
Методы unwrap и expect типа Result
Обработка нескольких типов ошибок
Оператор ?
Глава 10. Cargo
Создание проекта с помощью Cargo
Загрузка и использование внешних зависимостей
Крейты и пакеты
Глава 11. Ввод и вывод
Ввод с клавиатуры
Глава 12. Указатели
Unsafe-контекст и указатели
Смарт-указатели
Глава 13. Многопоточность
Создание потоков
Смарт-указатель Arc
Мьютексы
Взаимоблокировки мьютексов
RwLock
Управление взаимоблокировками RwLock
Межпотоковое взаимодействие через каналы
Atomic
Барьеры
Thread Local Storage
Глава 14. Файловая система
Работа с каталогами
Работа с файлами
Глава 15. Юнит-тестирование
Введение в юнит-тесты
Определение и запуск юнит-тестов
Тестирование по условию
Тестирование ошибок
Глава 16. Макросы
Процедурные макросы
Глава 17. FFI. Взаимодействие с нативным кодом на C/C++ и ассемблере
Подключение библиотек C/C++ в код на Rust
Совместная компиляция кода Rust и C/C++
Структуры в Rust и C/C++