Add smart-house lib skeleton
This commit is contained in:
14
.editorconfig
Normal file
14
.editorconfig
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
root = true
|
||||||
|
|
||||||
|
[*]
|
||||||
|
charset = utf-8
|
||||||
|
end_of_line = lf
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 4
|
||||||
|
insert_final_newline = true
|
||||||
|
trim_trailing_whitespace = true
|
||||||
|
max_line_length = 160
|
||||||
|
tab_width = 2
|
||||||
|
|
||||||
|
[*.md]
|
||||||
|
trim_trailing_whitespace = false
|
||||||
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
/.idea/
|
||||||
@@ -1,3 +1,6 @@
|
|||||||
# Домашние задания OTUS
|
# Домашние задания OTUS
|
||||||
|
|
||||||
Ссылка на курс: [Rust Developer. Professional](https://otus.ru/lessons/rust-developer/).
|
Ссылка на курс: [Rust Developer. Professional](https://otus.ru/lessons/rust-developer/).
|
||||||
|
|
||||||
|
Отчетные проекты:
|
||||||
|
- [Умный дом](smart-house/README.md)
|
||||||
|
|||||||
1
smart-house/.gitignore
vendored
Normal file
1
smart-house/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
/target/
|
||||||
7
smart-house/Cargo.lock
generated
Normal file
7
smart-house/Cargo.lock
generated
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
# This file is automatically @generated by Cargo.
|
||||||
|
# It is not intended for manual editing.
|
||||||
|
version = 4
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "smart-house"
|
||||||
|
version = "0.0.0"
|
||||||
6
smart-house/Cargo.toml
Normal file
6
smart-house/Cargo.toml
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
[package]
|
||||||
|
edition = "2024"
|
||||||
|
name = "smart-house"
|
||||||
|
version = "0.0.0"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
57
smart-house/README.md
Normal file
57
smart-house/README.md
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
# Учебная библиотека "Умный дом"
|
||||||
|
|
||||||
|
Демонстрационная библиотека для выполнения домашних заданий.
|
||||||
|
|
||||||
|
## ДЗ 2025-12-16
|
||||||
|
|
||||||
|
Заготовка для библиотеки "Умный дом".
|
||||||
|
|
||||||
|
### Цель:
|
||||||
|
|
||||||
|
Создать заготовку для библиотеки «Умный дом» и напишите пример, демонстрирующий её функционал.
|
||||||
|
|
||||||
|
### Срок:
|
||||||
|
|
||||||
|
Сдать до: **2026-01-19**
|
||||||
|
|
||||||
|
### Описание/Пошаговая инструкция выполнения домашнего задания:
|
||||||
|
|
||||||
|
Библиотека и пример использования реализованы в одном package.
|
||||||
|
|
||||||
|
Для библиотеки:
|
||||||
|
|
||||||
|
- [x] Реализована в виде lib крейта.
|
||||||
|
- [ ] Опишите тип: умный термометр. Тип должен предоставлять следующий функционал:
|
||||||
|
- [ ] Конструктор, принимающий значения полей.
|
||||||
|
- [ ] Возвращать значение текущей температуры (произвольное число).
|
||||||
|
- [ ] Опишите тип: умная розетка. Тип должен предоставлять следующий функционал:
|
||||||
|
- [ ] Конструктор, принимающий значения полей.
|
||||||
|
- [ ] Включение/выключение + возможность узнать текущее состояние.
|
||||||
|
- [ ] Возвращать текущую мощность: если выключено — ноль, иначе произвольное число.
|
||||||
|
- [ ] Опишите тип: умное устройство. Тип должен содержать одно из устройств (умный термометр или розетку) и предоставлять следующий функционал:
|
||||||
|
- [ ] Выводить в стандартный вывод сообщение о состоянии устройства.
|
||||||
|
- [ ] Опишите тип: комната, содержащая массив умных устройств. Тип должен предоставлять следующий функционал:
|
||||||
|
- [ ] Конструктор, принимающий массив устройств.
|
||||||
|
- [ ] Можно получить ссылку на устройство по указанному индексу.
|
||||||
|
- [ ] Можно получить мутабельную ссылку на устройство по указанному индексу.
|
||||||
|
- [ ] Выводить в стандартный вывод отчёт о всех устройствах в комнате.
|
||||||
|
- [ ] Опишите тип: умный дом, содержащий массив комнат. Тип должен предоставлять следующий функционал:
|
||||||
|
- [ ] Конструктор, принимающий массив комнат.
|
||||||
|
- [ ] Можно получить ссылку на комнату по указанному индексу.
|
||||||
|
- [ ] Можно получить мутабельную ссылку на комнату по указанному индексу.
|
||||||
|
- [ ] Выводить в стандартный вывод отчёт о всех комнатах.
|
||||||
|
- Размеры массивов можно выбрать произвольно.
|
||||||
|
- В случае, если указан индекс, выходящий за пределы массива, приложение должно аварийно завершаться (макрос `panic!()`).
|
||||||
|
|
||||||
|
Для примера использования:
|
||||||
|
|
||||||
|
- [ ] Реализована в виде bin крейта.
|
||||||
|
- [ ] Создайте экземпляр умного дома и выведете отчёт о его содержимом.
|
||||||
|
- [ ] Для уже созданного экземпляра дома выключите умную розетку в одной из комнат. Снова выведите отчёт.
|
||||||
|
|
||||||
|
**Критерии оценки**:
|
||||||
|
|
||||||
|
- Package успешно собирается.
|
||||||
|
- Приложение-пример успешно выполняется и выводит отчёт о доме.
|
||||||
|
- Команды cargo clippy и cargo fmt --check не выводят ошибок и предупреждений.
|
||||||
|
- Присутствуют и успешно выполняются модульные тесты.
|
||||||
2
smart-house/rustfmt.toml
Normal file
2
smart-house/rustfmt.toml
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
max_width = 160
|
||||||
|
newline_style = "Unix"
|
||||||
1
smart-house/src/lib.rs
Normal file
1
smart-house/src/lib.rs
Normal file
@@ -0,0 +1 @@
|
|||||||
|
|
||||||
1
smart-house/src/main.rs
Normal file
1
smart-house/src/main.rs
Normal file
@@ -0,0 +1 @@
|
|||||||
|
fn main() {}
|
||||||
Reference in New Issue
Block a user