Skip to content

Latest commit

 

History

History

hw05

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 

Обработка ошибок в прототипе "Умного Дома"

Цель

  • Научиться использовать основные типажи и перечисления стандартной библиотеки Rust.

Результатом является:

  • Библиотека "Умный Дом" с обработкой ошибок.

Описание/Пошаговая инструкция выполнения домашнего задания

  • Функции библиотеки "Умный Дом" должны возвращать Option в случае, если есть вероятность не получить результат.
  • Функции библиотеки "Умный Дом" должны возвращать Result в случае, отсутствие результата может быть вызвано различными причинами.
  • Библиотека предоставляет структуру дома в комнатах которого расположены устройства.
  • Дом имеет название и содержит несколько помещений.
  • Библиотека позволяет запросить список помещений в доме.
  • Помещение имеет уникальное название и содержит названия нескольких устройств.
  • Устройство имеет уникальное в рамках помещения имя.
  • Библиотека позволяет получать список устройств в помещении.
  • Библиотека имеет функцию, возвращающую текстовый отчёт о состоянии дома. Эта функция принимает в качестве аргумента обобщённый тип, позволяющий получить текстовую информацию о состоянии устройства, для включения в отчёт. Эта информация должна предоставляться для каждого устройства на основе данных о положении устройства в доме: имени комнаты и имени устройства. Если устройство не найдено в источнике информации, то вместо текста о состоянии вернуть сообщение об ошибке.
  • Привести пример типа, предоставляющего текстовую информацию об устройствах в доме для составления отчёта. Шаблон для описания сущностей библиотеки: https://gist.github.com/76dff7177f19ff7e802b1e121865afe4

Критерии оценки

Статус Принято ставится, если:

  • Функции, которые могут не выполнить своё назначение, возвращают Option или Result.
  • Типы ошибок реализуют трейт Error.
  • Утилита cargo clippy не выдаёт предупреждений.
  • Команда cargo fmt --check --all не выдаёт предупреждений.

Компетенции

  • Знание языка Rust.
    • Применение стандартных перечислений для обработки ошибок.