Мова програмування Rust
Передмова
Вступ
1.
Початок
1.1.
Встановлення
1.2.
Hello, World!
1.3.
Привіт, Cargo!
2.
Програмування гри - відгадайки
3.
Загальні концепції програмування
3.1.
Змінні та мутабельність
3.2.
Типи даних
3.3.
Функції
3.4.
Коментарі
3.5.
Управління потоком виконання
4.
Розуміння володіння
4.1.
Що таке володіння?
4.2.
Посилання і позичання
4.3.
Тип даних слайс
5.
Використання структур для структурування пов'язаних даних
5.1.
Визначення і інстанціювання структур Struct
5.2.
Приклад програми, що використовує структури
5.3.
Синтаксис методів
6.
Енуми і зіставлення з шаблоном
6.1.
Визначення енума
6.2.
Конструкція управління match
6.3.
Лаконічний контроль виконання конструкцією if let
7.
Керування проєктами, що зростають, за допомогою пакетів, крейтів та модулів
7.1.
Пакети та крейти
7.2.
Визначення модулів для управління областями видимості та приватністю
7.3.
Шлях для доступу до елементів у дереві модулів
7.4.
Підключення шляхів до області видимості за допомогою ключового слова use
7.5.
Розподіл модулів на різні файли
8.
Звичайні колекції
8.1.
Зберігання списків значень у векторах
8.2.
Зберігання тексту у кодуванні UTF-8 у стрічках
8.3.
Зберігання ключів і пов'язаних значень у хешмапах
9.
Обробка помилок
9.1.
Невідновні Помилки із panic!
9.2.
Помилки, що піддаються відновленню за допомогою Result
9.3.
panic! чи не panic!
10.
Узагальнені типи, трейти та лайфтайми
10.1.
Узагальнені типи даних
10.2.
Трейти: визначення загальної поведінки
10.3.
Перевірка коректності посилань за допомогою часів існування
11.
Написання автоматизованих тестів
11.1.
Як писати тести
11.2.
Контроль над запуском тестів
11.3.
Організація тестів
12.
Проєкт з введенням/виведенням: створення програми командного рядка
12.1.
Приймання аргументів командного рядка
12.2.
Читання файлу
12.3.
Рефакторизація для покращення модульності та обробки помилок
12.4.
Розробка Функціонала Бібліотеки із Test-Driven Development
12.5.
Робота зі Змінними Середовища
12.6.
Написання Повідомлень Про Помилки в Standard Error Замість Стандартного Виводу
13.
Функціональні можливості мови: Ітератори та Замикання
13.1.
Замикання: Анонімні Функції що Захоплюють Своє Середовище
13.2.
Обробка послідовностей елементів за допомогою ітераторів
13.3.
Покращуємо наш проєкт з введенням/виведенням
13.4.
Порівняння швидкодії: цикли проти ітераторів
14.
Більше про Cargo та Crates.io
14.1.
Налаштування Збірок з Release Профілями
14.2.
Публікація Крейта на Crates.io
14.3.
Робочі Області Cargo
14.4.
Встановлення Двійкових Файлів з cargo install
14.5.
Розширення Cargo із Користувацькими Командами
15.
Розумні вказівники
15.1.
Використання Box<T> для вказування на значення в Heap
15.2.
Використання розумних вказівників як звичайних посилань за допомогою трейта Deref
15.3.
Виконання коду при очищенні за допомогою трейту Drop
15.4.
Rc<T>, розумний вказівник з лічильником посилань
15.5.
RefCell<T> і шаблон внутрішньої мутабельності
15.6.
Цикли посилань можуть призвести до витоку пам'яті
16.
Конкурентність без страху
16.1.
Використання потоків для одночасного запуску коду
16.2.
Використання обміну повідомленнями для передачі даних між потоками
16.3.
Паралелізм із спільним станом
16.4.
Розширювана конкурентність із трейтами Sync і Send
17.
Об'єктно орієнтовані особливості Rust
17.1.
Характеристики об'єктно орієнтованого програмування
17.2.
Використання трейтових об'єктів, які допускають значення різних типів
17.3.
Реалізація патернів об'єктноорієнтованого програмування
18.
Шаблони та Зіставлення Шаблонів
18.1.
Усі Місця Можливого Використання Шаблонів
18.2.
Спростовуваність: Чи Може Шаблон Бути Невідповідним
18.3.
Синтаксис Шаблонів
19.
Просунутий функціонал
19.1.
Небезпечний Rust
19.2.
Поглиблено про трейти
19.3.
Поглиблено про типи
19.4.
Поглиблено про функції та замикання
19.5.
Макроси
20.
Останній проєкт: збірка багатопотокового вебсервера
20.1.
Збірка однопотокового вебсервера
20.2.
Перетворюємо наш однопотоковий сервер на багатопотоковий
20.3.
Плавне вимикання і очищення
21.
Додатки
21.1.
A - ключові слова
21.2.
B - оператори та символи
21.3.
С - вивідні трейти
21.4.
D - корисні інструменти розробки
21.5.
E - видання
21.6.
F - переклади цієї книжки
21.7.
G - як робиться Rust і "щонічний Rust"
Light (default)
Rust
Coal
Navy
Ayu
Мова програмування Rust
Додатки
Ці додатки містять довідковий матеріал, що стане в пригоді у вашій подорожі мовою Rust.