pridaj knihu
This commit is contained in:
32
Cargo.lock
generated
32
Cargo.lock
generated
@@ -110,6 +110,18 @@ version = "1.70.2"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695"
|
checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "itoa"
|
||||||
|
version = "1.0.17"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "memchr"
|
||||||
|
version = "2.7.6"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "once_cell_polyfill"
|
name = "once_cell_polyfill"
|
||||||
version = "1.70.2"
|
version = "1.70.2"
|
||||||
@@ -122,6 +134,7 @@ version = "0.1.0"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"clap",
|
"clap",
|
||||||
"serde",
|
"serde",
|
||||||
|
"serde_json",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -172,6 +185,19 @@ dependencies = [
|
|||||||
"syn",
|
"syn",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "serde_json"
|
||||||
|
version = "1.0.149"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86"
|
||||||
|
dependencies = [
|
||||||
|
"itoa",
|
||||||
|
"memchr",
|
||||||
|
"serde",
|
||||||
|
"serde_core",
|
||||||
|
"zmij",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "strsim"
|
name = "strsim"
|
||||||
version = "0.11.1"
|
version = "0.11.1"
|
||||||
@@ -215,3 +241,9 @@ checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"windows-link",
|
"windows-link",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "zmij"
|
||||||
|
version = "1.0.18"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "1966f8ac2c1f76987d69a74d0e0f929241c10e78136434e3be70ff7f58f64214"
|
||||||
|
|||||||
@@ -6,3 +6,4 @@ edition = "2024"
|
|||||||
[dependencies]
|
[dependencies]
|
||||||
clap = { version = "4.5.54", features = ["derive"] }
|
clap = { version = "4.5.54", features = ["derive"] }
|
||||||
serde = { version = "1.0.228", features = ["derive"] }
|
serde = { version = "1.0.228", features = ["derive"] }
|
||||||
|
serde_json = "1.0.149"
|
||||||
|
|||||||
40
src/logic.rs
40
src/logic.rs
@@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
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 {
|
||||||
@@ -66,7 +68,39 @@ struct Kniznica {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl Kniznica {
|
impl Kniznica {
|
||||||
// fn pridaj_knihu
|
// Asociovana funkcia
|
||||||
// fn odstran_knihu
|
fn nacitaj_zo_suboru(cesta: &std::path::PathBuf) -> Option<Self>{
|
||||||
// fn daj_knihu_podla_isbn
|
let obsah = match std::fs::read_to_string(cesta) {
|
||||||
|
Ok(text) => text,
|
||||||
|
Err(_) => return None,
|
||||||
|
};
|
||||||
|
let kniznica = match serde_json::from_str(obsah.as_str()) {
|
||||||
|
Ok(k) => k,
|
||||||
|
Err(_) => return None,
|
||||||
|
};
|
||||||
|
Some(kniznica)
|
||||||
|
}
|
||||||
|
// Metoda
|
||||||
|
fn uloz_do_suboru(&self, cesta: &std::path::PathBuf) -> bool {
|
||||||
|
let converted = match serde_json::to_string(&self) {
|
||||||
|
Ok(k) => k,
|
||||||
|
Err(_) => return false,
|
||||||
|
};
|
||||||
|
match std::fs::write(cesta, converted) {
|
||||||
|
Ok(_) => return true,
|
||||||
|
Err(_) => return false,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
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(());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
self.knihy.push(nova_kniha);
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user