deserializing envvar and stuff

This commit is contained in:
2026-08-18 13:51:28 +01:00
parent e75997f5e6
commit 60c30d2872
5 changed files with 173 additions and 51 deletions

View File

@@ -1,3 +1,65 @@
use serde::{Deserialize, Serialize};
use serde_json::Value;
use std::{env, fs, path::Path, process};
fn main() {
println!("Hello, world!");
let mut args = env::args();
let _binary = args.next();
while let Some(arg) = args.next() {
match arg.as_str() {
"add" => add(&mut args),
_other => println!("needs parameters"),
}
}
return;
}
fn deserialize_var() -> Library {
let key = "HOME";
let content: Library = match env::var(key) {
Ok(val) => match serde_json::from_str(&val) {
Ok(library) => library,
Err(..) => initialize_library(),
},
Err(..) => initialize_library(),
};
return content;
}
fn initialize_library() -> Library {
let default_shelf: Shelf = Shelf {
id: 0,
name: "default".to_string(),
content: Vec::new(),
};
let mut shelf_vec: Vec<Shelf> = Vec::new();
shelf_vec.push(default_shelf);
let default_library: Library = Library {
current_shelf: 0,
shelves: shelf_vec,
};
return default_library;
}
fn add(args: &mut env::Args) {
for file in args {
println!("Adding {}", &file);
let file_path = Path::new(&file);
}
process::exit(0)
}
#[derive(Default, Deserialize, Serialize)]
struct Library {
current_shelf: u16,
shelves: Vec<Shelf>,
}
#[derive(Deserialize, Serialize)]
struct Shelf {
id: u64,
name: String,
content: Vec<String>,
}