This commit is contained in:
Priec
2026-02-02 22:10:08 +01:00
parent ed29fafb89
commit bb97b81756

View File

@@ -1,6 +1,8 @@
// src/lib.rs // src/lib.rs
use serde::{Serialize, Deserialize}; use serde::{Serialize, Deserialize};
use serde_json;
use std::fmt;
#[derive(Default, Serialize, Deserialize, PartialEq)] #[derive(Default, Serialize, Deserialize, PartialEq)]
enum Semester { enum Semester {
@@ -9,6 +11,15 @@ enum Semester {
Letny Letny
} }
impl fmt::Display for Semester {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
Semester::Zimny => write!(f, "Zimny"),
Semester::Letny => write!(f, "Letny"),
}
}
}
#[derive(Default, Serialize, Deserialize, PartialEq, Eq, Hash, Copy, Clone)] #[derive(Default, Serialize, Deserialize, PartialEq, Eq, Hash, Copy, Clone)]
enum TypPovinnosti { enum TypPovinnosti {
Povinny, Povinny,
@@ -17,6 +28,16 @@ enum TypPovinnosti {
Vyberovy, Vyberovy,
} }
impl fmt::Display for TypPovinnosti {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
TypPovinnosti::Povinny => write!(f, "Povinny"),
TypPovinnosti::PovinneVoliteny => write!(f, "PovinneVoliteny"),
TypPovinnosti::Vyberovy => write!(f, "Vyberovy"),
}
}
}
#[derive(Default, Serialize, Deserialize)] #[derive(Default, Serialize, Deserialize)]
struct Predmet { struct Predmet {
kod: String, kod: String,
@@ -30,12 +51,44 @@ struct Predmet {
typ_povinnosti: TypPovinnosti typ_povinnosti: TypPovinnosti
} }
impl fmt::Display for Predmet {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "({}, {}, {}, {}, {}, {}, {}, {}, {})",
self.kod,
self.nazov,
self.vyucujuci.join(", "),
self.popis,
self.semester,
self.rocnik,
self.pocet_kreditov,
self.znamka,
self.typ_povinnosti
)
}
}
#[derive(Default, Serialize, Deserialize)] #[derive(Default, Serialize, Deserialize)]
struct Index { struct Index {
predmety: Vec<Predmet>
} }
impl Index{ impl Index{
pub fn nacitaj_zo_suboru(&self, cesta: &std::path::PathBuf) -> Option<Self> {
let data = match std::fs::read_to_string(cesta) {
Ok(x) => x,
Err(_) => return None,
};
let vysledok = match serde_json::from_str(data.as_str()) {
Ok(k) => k,
Err(_) => return None,
};
Some(vysledok)
}
pub fn uloz_do_suboru(&self, cesta_uloz: &std::path::PathBuf) -> bool {
true
}
} }
impl Predmet { impl Predmet {