diff --git a/src/lib.rs b/src/lib.rs index a3a8129..7679d19 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -126,7 +126,32 @@ impl Index{ } else { Err(()) } + } + pub fn daj_predmet_podla_kodu(&self, kod: &str) -> Result, ()> { + if let Some(vrat) = self.predmety.iter().find(|x| x.kod == kod) { + return Ok(Some(vrat)); + } else { + Err(()) + } + } + + pub fn daj_predmety_vyucujuceho(&self, menov: &str) -> Vec<&Predmet> { + let vec: Vec<_> = self.predmety.iter().filter(|x| x.vyucujuci.contains(&menov.to_string())).collect(); + vec + } + + pub fn daj_predmety_podla_povinnosti(&self, tp: TypPovinnosti) -> Vec<&Predmet> { + let vec: Vec<_> = self.predmety.iter().filter(|x| x.typ_povinnosti == tp).collect(); + vec + } + + pub fn formatuj_predmety_podla_znamky(&self, znamka: char) -> Vec { + self.predmety + .iter() + .filter(|p| p.znamka == znamka) + .map(|p| format!("{}", p)) + .collect() } }