implement bin crate with demo

This commit is contained in:
5 changed files with 41 additions and 10 deletions

View File

@@ -45,9 +45,9 @@
Для примера использования:
- [ ] Реализована в виде bin крейта.
- [ ] Создайте экземпляр умного дома и выведете отчёт о его содержимом.
- [ ] Для уже созданного экземпляра дома выключите умную розетку в одной из комнат. Снова выведите отчёт.
- [x] Реализована в виде bin крейта.
- [x] Создайте экземпляр умного дома и выведете отчёт о его содержимом.
- [x] Для уже созданного экземпляра дома выключите умную розетку в одной из комнат. Снова выведите отчёт.
**Критерии оценки**:

View File

@@ -1 +1,38 @@
fn main() {}
use smart_house::{Device, House, PowerSocket, Room, Thermometer};
fn main() {
let mut house = House::new(
"A house of dream",
Box::new([
Room::new(
"Hall",
Box::new([Device::PowerSocket(PowerSocket::new(9.5, true)), Device::Thermometer(Thermometer::new(20.1))]),
),
Room::new(
"Main",
Box::new([
Device::PowerSocket(PowerSocket::new(11.2, true)),
Device::Thermometer(Thermometer::new(24.5)),
Device::PowerSocket(PowerSocket::new(10.4, true)),
]),
),
Room::new(
"Bedroom",
Box::new([Device::Thermometer(Thermometer::new(19.3)), Device::PowerSocket(PowerSocket::new(12.1, true))]),
),
]),
);
house.print_status();
print!("# Switching off a power socket in Hall... ");
let Device::PowerSocket(power_socket) = house.get_room_mut(0).get_device_mut(0) else {
println!("FAILED!");
return;
};
power_socket.set_on(false);
println!("SUCCESS");
println!();
house.print_status();
}

View File

@@ -1,5 +1,3 @@
#![allow(unused)]
use std::fmt::Display;
pub struct PowerSocket {

View File

@@ -1,5 +1,3 @@
#![allow(unused)]
use crate::Device;
pub struct Room {

View File

@@ -1,5 +1,3 @@
#![allow(unused)]
use std::fmt::Display;
pub struct Thermometer {