dalsie
This commit is contained in:
53
src/lib.rs
53
src/lib.rs
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user