- Научиться использовать основные типажи и перечисления стандартной библиотеки Rust.
Результатом является:
- Библиотека "Умный Дом" с обработкой ошибок.
- Функции библиотеки "Умный Дом" должны возвращать
Option
в случае, если есть вероятность не получить результат. - Функции библиотеки "Умный Дом" должны возвращать
Result
в случае, отсутствие результата может быть вызвано различными причинами. - Библиотека предоставляет структуру дома в комнатах которого расположены устройства.
- Дом имеет название и содержит несколько помещений.
- Библиотека позволяет запросить список помещений в доме.
- Помещение имеет уникальное название и содержит названия нескольких устройств.
- Устройство имеет уникальное в рамках помещения имя.
- Библиотека позволяет получать список устройств в помещении.
- Библиотека имеет функцию, возвращающую текстовый отчёт о состоянии дома. Эта функция принимает в качестве аргумента обобщённый тип, позволяющий получить текстовую информацию о состоянии устройства, для включения в отчёт. Эта информация должна предоставляться для каждого устройства на основе данных о положении устройства в доме: имени комнаты и имени устройства. Если устройство не найдено в источнике информации, то вместо текста о состоянии вернуть сообщение об ошибке.
- Привести пример типа, предоставляющего текстовую информацию об устройствах в доме для составления отчёта. Шаблон для описания сущностей библиотеки: https://gist.github.com/76dff7177f19ff7e802b1e121865afe4
Статус Принято
ставится, если:
- Функции, которые могут не выполнить своё назначение, возвращают
Option
илиResult
. - Типы ошибок реализуют трейт
Error
. - Утилита
cargo clippy
не выдаёт предупреждений. - Команда
cargo fmt --check --all
не выдаёт предупреждений.
- Знание языка Rust.
- Применение стандартных перечислений для обработки ошибок.