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
use serde::{Serialize, Deserialize};
use serde_json;
use std::fmt;
#[derive(Default, Serialize, Deserialize, PartialEq)]
enum Semester {
@@ -9,6 +11,15 @@ enum Semester {
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)]
enum TypPovinnosti {
Povinny,
@@ -17,6 +28,16 @@ enum TypPovinnosti {
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)]
struct Predmet {
kod: String,
@@ -30,12 +51,44 @@ struct Predmet {
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)]
struct Index {
predmety: Vec<Predmet>
}
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 {