Browse Source

updated description to fit the task

color display problem in console section isn't fixed
pull/1294/head
Zewasik 2 years ago committed by Dav Hojt
parent
commit
e7dde746f6
  1. 36
      subjects/events/README.md

36
subjects/events/README.md

@ -7,28 +7,28 @@ You have to design a notification system for a platform.
Depending on the type of event, your event handler will control the size, color and position of the notification. Depending on the type of event, your event handler will control the size, color and position of the notification.
Create a method named `notify` which returns a `Notification` with the following characteristics for each of: Create a method named `notify` which returns a `Notification` with the following characteristics for each of:
- `Remainder`: - `Remainder(text)`:
- `size`: `50` - `size`: `50`
- `color`: `(50, 50, 50)` - `color`: `(50, 50, 50)`
- `position`: `Bottom` - `position`: `Bottom`
- `content`: the slice associated to the enum value. - `content`: `text associated to the value`
- `Registration(chrono::Duration)`: - `Registration(chrono::Duration)`:
- `size`: `30` - `size`: `30`
- `color`: `(255, 2, 22)` - `color`: `(255, 2, 22)`
- `position`: `Top` - `position`: `Top`
- `content`: `"You have {duration} left before the registration ends"` - `content`: `"You have {duration} left before the registration ends"`
- `Appointment(text)` - `Appointment(text)`:
- `size: 100` - `size`: `100`
- `color: (200, 200, 3)` - `color`: `(200, 200, 3)`
- `position: Center` - `position`: `Center`
- `content: text associated to the value` - `content`: `text associated to the value`
- `Holiday` - `Holiday`:
- `size`: `25` - `size`: `25`
- `color`: `(0, 255, 0)` - `color`: `(0, 255, 0)`
- `position`: `Top` - `position`: `Top`
- `content`: `"Enjoy your holiday"` - `content`: `"Enjoy your holiday"`
`duration` must be displayed in the form of `{hours}H:{minutes}M:{seconds}S`. The time will represent the remaining time before the event starts. For example, if there are 2 hours, 32 minutes and 3 seconds left, then the content will be `"You have 13H:38M:14S left before the registration ends"` `duration` must be displayed in the form of `{hours}H:{minutes}M:{seconds}S`. The time will represent the remaining time before the event starts. For example, if there are 13 hours, 38 minutes and 14 seconds left, then the content will be `"You have 13H:38M:14S left before the registration ends"`
Implement the `std::fmt::Display` trait so the text of the notifications are printed in the right color in the command line. Implement the `std::fmt::Display` trait so the text of the notifications are printed in the right color in the command line.
@ -37,6 +37,8 @@ Implement the `std::fmt::Display` trait so the text of the notifications are pri
chrono = "0.4" chrono = "0.4"
colored = "2.0.0"
### Expected Functions and Data Structures ### Expected Functions and Data Structures
```rust ```rust
@ -44,22 +46,22 @@ use chrono::Duration;
use colored::*; use colored::*;
#[derive(Debug, Eq, PartialEq)] #[derive(Debug, Eq, PartialEq)]
enum Position { pub enum Position {
Top, Top,
Bottom, Bottom,
Center, Center,
} }
#[derive(Debug, Eq, PartialEq)] #[derive(Debug, Eq, PartialEq)]
struct Notification { pub struct Notification {
size: u32, pub size: u32,
color: (u8, u8, u8), pub color: (u8, u8, u8),
position: Position, pub position: Position,
content: String, pub content: String,
} }
#[derive(Debug)] #[derive(Debug)]
enum Event<'a> { pub enum Event<'a> {
Remainder(&'a str), Remainder(&'a str),
Registration(Duration), Registration(Duration),
Appointment(&'a str), Appointment(&'a str),
@ -74,7 +76,7 @@ impl fmt::Display for Notification {
use Event::*; use Event::*;
impl Event { impl Event {
fn notify(&self) -> Notification { pub fn notify(&self) -> Notification {
} }
} }
``` ```

Loading…
Cancel
Save