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 serde::{Deserialize, Serialize};
|
||||||
use std::fmt;
|
use std::fmt;
|
||||||
use std::fs;
|
|
||||||
use std::error::Error;
|
|
||||||
|
|
||||||
#[derive(Default, Serialize, Deserialize, PartialEq)]
|
#[derive(Default, Serialize, Deserialize, PartialEq)]
|
||||||
enum Stav {
|
enum Stav {
|
||||||
@@ -93,14 +91,45 @@ impl Kniznica {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn pridaj_knihu(&mut self, nova_kniha: Kniha) -> Result<(), ()> {
|
fn pridaj_knihu(&mut self, nova_kniha: Kniha) -> Result<(), ()> {
|
||||||
if (&self.knihy).len() > 0 {
|
for x in &self.knihy {
|
||||||
for x in &self.knihy {
|
if x.isbn == nova_kniha.isbn {
|
||||||
if x.isbn == nova_kniha.isbn {
|
return Err(());
|
||||||
return Err(());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
self.knihy.push(nova_kniha);
|
self.knihy.push(nova_kniha);
|
||||||
Ok(())
|
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