pripravene na implementaciu logiky

This commit is contained in:
Priec
2026-01-31 22:58:52 +01:00
parent eddebc04ae
commit 675f953866

View File

@@ -4,48 +4,56 @@ use serde::{Deserialize, Serialize};
use std::fmt; use std::fmt;
#[derive(Default, Serialize, Deserialize, PartialEq)] #[derive(Default, Serialize, Deserialize, PartialEq)]
enum StavKnihy { enum Stav {
#[default] Nova = 0, #[default] Nova = 0,
Pozicana = 1, Pouzivana = 1,
Poskodena = 2, Poskodena = 2,
Vyradena = 3, Vyradena = 3,
} }
impl fmt::Display for StavKnihy { impl fmt::Display for Stav {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self { match self {
StavKnihy::Nova => write!(f, "Nova"), Stav::Nova => write!(f, "Nova"),
StavKnihy::Pozicana => write!(f, "Pozicana"), Stav::Pouzivana => write!(f, "Pouzivana"),
StavKnihy::Poskodena => write!(f, "Poskodena"), Stav::Poskodena => write!(f, "Poskodena"),
StavKnihy::Vyradena => write!(f, "Vyradena") Stav::Vyradena => write!(f, "Vyradena")
} }
} }
} }
#[derive(Default, Serialize, Deserialize)] #[derive(Default, Serialize, Deserialize)]
struct Kniha { struct Kniha {
authors: Vec<String>, autori: Vec<String>,
title: String, nazov: String,
publisher: String, vydavatelstvo: String,
genre: String, zaner: String,
page_count: usize, pocet_stran: usize,
isbn: String, isbn: String,
year: usize, rok_vydania: usize,
pozicane: bool, je_pozicana: bool,
stav_knihy: StavKnihy, stav_knihy: Stav,
} }
impl fmt::Display for Kniha { impl fmt::Display for Kniha {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "({}, {}, {}, {}, {}, {}, {}, {}, {}", write!(f, "(Autori: {},
self.authors.join(", "), Nazov: {},
self.title, Vydavatelstvo: {},
self.publisher, Zaner: {},
self.genre, Pocet stran: {},
self.page_count, ISBN: {},
Rok vydania: {},
Je pozicana {},
Stav knihy: {})",
self.autori.join(", "),
self.nazov,
self.vydavatelstvo,
self.zaner,
self.pocet_stran,
self.isbn, self.isbn,
self.year, self.rok_vydania,
self.pozicane, self.je_pozicana,
self.stav_knihy, self.stav_knihy,
) )
} }
@@ -54,5 +62,11 @@ impl fmt::Display for Kniha {
#[derive(Default, Serialize, Deserialize)] #[derive(Default, Serialize, Deserialize)]
struct Kniznica { struct Kniznica {
knihy: Vec<Kniha>
}
impl Kniznica {
// fn pridaj_knihu
// fn odstran_knihu
// fn daj_knihu_podla_isbn
} }