1. Введение
  2. 1. Привет, мир!
    1. 1.1. Комментарии
    2. 1.2. Форматированный вывод
      1. 1.2.1. Debug
      2. 1.2.2. Display
        1. 1.2.2.1. Пример: Список
      3. 1.2.3. Форматирование
  3. 2. Примитивы
    1. 2.1. Литералы и операторы
    2. 2.2. Кортежи
    3. 2.3. Массивы и срезы
  4. 3. Пользовательские типы
    1. 3.1. Структуры
    2. 3.2. Перечисления
      1. 3.2.1. Декларация use
      2. 3.2.2. C-подобные перечисления
      3. 3.2.3. Пример: Связанный список
    3. 3.3. Константы
  5. 4. Связывание переменных
    1. 4.1. Изменяемость
    2. 4.2. Область видимости и затенение
    3. 4.3. Предварительное объявление
    4. 4.4. Заморозка
  6. 5. Типы
    1. 5.1. Приведение типов
    2. 5.2. Литералы
    3. 5.3. Вывод типов
    4. 5.4. Псевдонимы
  7. 6. Преобразования
    1. 6.1. From и Into
    2. 6.2. TryFrom и TryInto
    3. 6.3. FromStr и ToString
  8. 7. Выражения
  9. 8. Управление потоком
    1. 8.1. if/else
    2. 8.2. loop
      1. 8.2.1. Вложенность и метки
      2. 8.2.2. Возврат из циклов
    3. 8.3. while
    4. 8.4. for и range
    5. 8.5. match
      1. 8.5.1. Деструктуризация
        1. 8.5.1.1. Кортежи
        2. 8.5.1.2. Перечисления
        3. 8.5.1.3. Указатели и ссылки
        4. 8.5.1.4. Структуры
      2. 8.5.2. Ограничители шаблонов
      3. 8.5.3. Связывание
    6. 8.6. if let
    7. 8.7. while let
  10. 9. Функции
    1. 9.1. Методы
    2. 9.2. Замыкания
      1. 9.2.1. Захват
      2. 9.2.2. Как входные параметры
      3. 9.2.3. Анонимность типов
      4. 9.2.4. Входные функции
      5. 9.2.5. Как выходные параметры
      6. 9.2.6. Примеры из стандартной библиотеки
        1. 9.2.6.1. Iterator::any
        2. 9.2.6.2. Поиск через итераторы
    3. 9.3. Функции высшего порядка
    4. 9.4. Расходящиеся функции
  11. 10. Модули
    1. 10.1. Видимость
    2. 10.2. Видимость структуры
    3. 10.3. Декларация use
    4. 10.4. super и self
    5. 10.5. Иерархия файлов
  12. 11. Контейнеры
    1. 11.1. Библиотеки
    2. 11.2. extern crate
  13. 12. Cargo
    1. 12.1. Зависимости
    2. 12.2. Соглашения
    3. 12.3. Тестирование
    4. 12.4. Скрипты сборки
  14. 13. Атрибуты
    1. 13.1. dead_code
    2. 13.2. Контейнеры
    3. 13.3. cfg
      1. 13.3.1. Собственные условия
  15. 14. Обобщения
    1. 14.1. Функции
    2. 14.2. Реализация
    3. 14.3. Типажи (трейты)
    4. 14.4. Ограничения
      1. 14.4.1. Пример: пустые ограничения
    5. 14.5. Множественные ограничения
    6. 14.6. Утверждения where
    7. 14.7. New Type идиома
    8. 14.8. Ассоциированные элементы
      1. 14.8.1. Проблема
      2. 14.8.2. Ассоциированные типы
    9. 14.9. PhantomData-параметры
      1. 14.9.1. Пример: unit clarification
  16. 15. Правила области видимости
    1. 15.1. RAII
    2. 15.2. Владение и перемещение
      1. 15.2.1. Изменяемость
    3. 15.3. Заимствование
      1. 15.3.1. Mutability
      2. 15.3.2. Алиасинг
      3. 15.3.3. ref паттерн
    4. 15.4. Времена жизни
      1. 15.4.1. Явное аннотирование
      2. 15.4.2. Функции
      3. 15.4.3. Методы
      4. 15.4.4. Структуры
      5. 15.4.5. Типажи
      6. 15.4.6. Ограничения
      7. 15.4.7. Приведение (coercion)
      8. 15.4.8. Static
      9. 15.4.9. Сокрытие
  17. 16. Типажи
    1. 16.1. Атрибут Derive
    2. 16.2. Возврат типажа с dyn
    3. 16.3. Перегрузка операторов
    4. 16.4. Типаж Drop
    5. 16.5. Итераторы
    6. 16.6. impl Trait
    7. 16.7. Типаж Clone
    8. 16.8. Супертрейты
    9. 16.9. Устранение неоднозначности в перекрывающихся трейтах
  18. 17. macro_rules!
    1. 17.1. Синтаксис
      1. 17.1.1. Указатели
      2. 17.1.2. Перегрузка
      3. 17.1.3. Повторение
    2. 17.2. DRY (Не повторяйся)
    3. 17.3. DSL (Domain Specific Languages)
    4. 17.4. Variadics
  19. 18. Обработка ошибок
    1. 18.1. panic
    2. 18.2. Option & unwrap
      1. 18.2.1. Разворачивание Option с ?
      2. 18.2.2. Комбинаторы: map
      3. 18.2.3. Комбинаторы: and_then
    3. 18.3. Result
      1. 18.3.1. map для Result
      2. 18.3.2. Псевдонимы для Result
      3. 18.3.3. Преждевременный выход
      4. 18.3.4. Введение ?
    4. 18.4. Несколько типов ошибок
      1. 18.4.1. Получение Result из Option
      2. 18.4.2. Объявление типа ошибки
      3. 18.4.3. Упаковка ошибок (Box)
      4. 18.4.4. Другие способы использования ?
      5. 18.4.5. Оборачивание ошибок
    5. 18.5. Итерирование по Result
  20. 19. Типы стандартной библиотеки
    1. 19.1. Box, стек и куча
    2. 19.2. Вектора
    3. 19.3. Strings
    4. 19.4. Option
    5. 19.5. Result
      1. 19.5.1. ?
    6. 19.6. panic!
    7. 19.7. HashMap
      1. 19.7.1. Альтернативные (пользовательские) типы ключей
      2. 19.7.2. HashSet
    8. 19.8. Rc
  21. 20. Разное в стандартной библиотеке
    1. 20.1. Потоки
      1. 20.1.1. Пример: map-reduce
    2. 20.2. Каналы
    3. 20.3. Path
    4. 20.4. Файловый ввод-вывод
      1. 20.4.1. open
      2. 20.4.2. create
      3. 20.4.3. read lines
    5. 20.5. Дочерние процессы
      1. 20.5.1. Pipes
      2. 20.5.2. Ожидание
    6. 20.6. Работа с файловой системой
    7. 20.7. Аргументы программы
      1. 20.7.1. Парсинг аргументов
    8. 20.8. Foreign Function Interface
  22. 21. Тестирование
    1. 21.1. Unit-тестирование
    2. 21.2. Тестирование документации
    3. 21.3. Интеграционное тестирование
    4. 21.4. dev-dependencies
  23. 22. Unsafe операции
  24. 23. Совместимость
    1. 23.1. Сырые идентификаторы
  25. 24. Meta
    1. 24.1. Документация
    2. 24.2. Playpen

Rust By Example

Playpen