daj knihy autora
This commit is contained in:
43
src/logic.rs
43
src/logic.rs
@@ -2,8 +2,6 @@
|
||||
|
||||
use serde::{Deserialize, Serialize};
|
||||
use std::fmt;
|
||||
use std::fs;
|
||||
use std::error::Error;
|
||||
|
||||
#[derive(Default, Serialize, Deserialize, PartialEq)]
|
||||
enum Stav {
|
||||
@@ -93,14 +91,45 @@ impl Kniznica {
|
||||
}
|
||||
|
||||
fn pridaj_knihu(&mut self, nova_kniha: Kniha) -> Result<(), ()> {
|
||||
if (&self.knihy).len() > 0 {
|
||||
for x in &self.knihy {
|
||||
if x.isbn == nova_kniha.isbn {
|
||||
return Err(());
|
||||
}
|
||||
for x in &self.knihy {
|
||||
if x.isbn == nova_kniha.isbn {
|
||||
return Err(());
|
||||
}
|
||||
}
|
||||
self.knihy.push(nova_kniha);
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn pridaj_knihu2(&mut self, nova_kniha: Kniha) -> Result<(), ()> {
|
||||
let moze = self.knihy.iter()
|
||||
.all(|x| x.isbn != nova_kniha.isbn);
|
||||
if moze {
|
||||
self.knihy.push(nova_kniha);
|
||||
} else {
|
||||
return Err(());
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn odstran_knihu(&mut self, isbn: &str) -> Result<Kniha, ()> {
|
||||
if let Some(index) = self.knihy.iter()
|
||||
.position(|x| x.isbn == isbn) {
|
||||
let kniha = self.knihy.remove(index);
|
||||
Ok(kniha)
|
||||
} else {
|
||||
Err(())
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
fn daj_knihu_podla_isbn(&self, isbn: &str) -> Option<&Kniha> {
|
||||
if let Some(vrat) = self.knihy.iter().find(|x| x.isbn == isbn) {
|
||||
return Some(vrat);
|
||||
}
|
||||
None
|
||||
}
|
||||
|
||||
fn daj_knihy_podla_stavu(&self, stav_knihy: Stav) -> Vec<&Kniha> {
|
||||
self.knihy.iter().filter(|x| x.stav_knihy == stav_knihy).collect()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user