The Rust Programming Language
Foreword
Introduction
1.
Початок
1.1.
Встановлення
1.2.
Hello, World!
1.3.
Hello, 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.
Referring to Names in Different Modules
7.4.
Підключення шляхів до області видимості за допомогою ключового слова use
7.5.
Розподіл модулів на різні файли
8.
Common Collections
8.1.
Vectors
8.2.
Strings
8.3.
Hash Maps
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.
Installing Binaries from Crates.io with 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.
Threads
16.2.
Message Passing
16.3.
Shared State
16.4.
Extensible Concurrency: Sync and Send
17.
Is Rust an Object-Oriented Programming Language?
17.1.
What Does Object-Oriented Mean?
17.2.
Trait Objects for Using Values of Different Types
17.3.
Object-Oriented Design Pattern Implementations
18.
Шаблони та Зіставлення Шаблонів
18.1.
All the Places Patterns May be Used
18.2.
Спростовуваність: Чи Може Шаблон Бути Невідповідним
18.3.
All the Pattern Syntax
19.
Просунутий функціонал
19.1.
Небезпечний Rust
19.2.
Поглиблено про трейти
19.3.
Поглиблено про типи
19.4.
Поглиблено про функції та замикання
19.5.
Advanced Functions & Closures
20.
Останній проєкт: збірка багатопотокового вебсервера
20.1.
Збірка однопотокового вебсервера
20.2.
Перетворюємо наш однопотоковий сервер на багатопотоковий
20.3.
Плавне вимикання і очищення
21.
Додатки
21.1.
A - Ключові слова
21.2.
B - оператори та символи
21.3.
C - Derivable Traits
21.4.
D - Macros
21.5.
E - Translations
21.6.
F - Newest Features
21.7.
Додаток G - як робиться Rust і "щонічний Rust"
Light
Rust
Coal
Navy
Ayu
Мова програмування Rust
Додатки
Ці додатки містять довідковий матеріал, що стане в пригоді у вашій подорожі мовою Rust.