1use serde_json::Value as JsonValue;
2use serde::de::DeserializeOwned;
3use crate::fs::{read_file,write_file};
4
5pub fn read_json(contents:&String)->JsonValue {
6 let res =serde_json::from_str(&contents);
7 if res.is_ok(){
8 let p:JsonValue = res.unwrap();
9 return p
10 }
11 else{
12 panic!("something went wrong!!")
13 }
14
15}
16
17pub fn write_json(path:&String,contents:&JsonValue){
18 let con = contents.to_string();
19 write_file(path,&con);
20}
21
22pub fn sync_json<T:DeserializeOwned>(contents:&String)->T {
23 let res =serde_json::from_str(&contents);
24 if res.is_ok(){
25 let p:T = res.unwrap();
26 return p
27 }
28 else{
29 panic!("something went wrong!!")
30 }
31
32}
33
34pub fn extractor <T:DeserializeOwned> (_name:String,_path:String)->T{
36 let contents:String=read_file(&format!("{}",_path));
37 let data:JsonValue = read_json(&contents);
38 let data:String = data[_name].to_string();
39 let returns:T = sync_json(&data);
40 returns
41}
42
43pub fn store_var(path:&String,key:&String,value:&String){
44 println!("path uh {}",path);
45 let rcon = read_file(path);
46 let mut rjcon = read_json(&rcon);
47 rjcon[key]=JsonValue::from(value.to_string());
48 write_json(path,&rjcon);
49}
50
51pub fn retrive_var(path:&String,key:&String)->String{
52 println!("path uh {}",path);
53 let rcon = read_file(path);
54 let rjcon = read_json(&rcon);
55 rjcon[key].to_string()
56}