blok 1 hotovy

This commit is contained in:
Priec
2026-02-15 10:32:10 +01:00
parent 2758b07c2b
commit af4d960262
5 changed files with 159 additions and 0 deletions

View File

@@ -0,0 +1,71 @@
use serde::Deserialize;
use serde::Serialize;
use std::fmt;
#[derive(Default, Serialize, Deserialize, PartialEq, Clone)]
pub enum Zaner {
Akcia,
Komedia,
Horor,
#[default]
Drama,
Scifi,
Dokumentarny
}
impl fmt::Display for Zaner {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
Zaner::Akcia => write!(f, "Akcia"),
Zaner::Komedia => write!(f, "Komedia"),
Zaner::Horor => write!(f, "Horor"),
Zaner::Drama => write!(f, "Drama"),
Zaner::Scifi => write!(f, "Scifi"),
Zaner::Dokumentarny => write!(f, "Dokumentarny"),
}
}
}
#[derive(Default, Serialize, Deserialize, Clone)]
pub struct Film {
nazov: String,
reziser: String,
rok: u16,
zaner: Zaner,
hodnotenie: f32
}
impl fmt::Display for Film {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "({}, {}, {}, {}, {})",
self.nazov,
self.reziser,
self.rok,
self.zaner,
self.hodnotenie
)
}
}
#[derive(Default, Serialize, Deserialize)]
pub struct Filmoteka {
filmy: Vec<Film>,
}
#[derive(Serialize, Deserialize, Clone, PartialEq)]
pub enum Stav {
Aktivny,
Pozastaveny { dovod: String },
Ukonceny { datum: String, hodnotenie: u8 },
}
impl fmt::Display for Stav {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
Stav::Aktivny => write!(f, "Aktivny"),
Stav::Pozastaveny { dovod } => write!(f, "Pozastaveny: {}", dovod),
Stav::Ukonceny { datum, hodnotenie } => write!(f, "Ukončený dňa {} s hodnotením {}", datum, hodnotenie),
}
}
}