prettylogger/json.rs
1use crate::logging::*;
2use serde_json;
3use std::{
4 fs::*,
5 io::Write,
6};
7
8impl Logger {
9 /// Creates a `Logger` instance from a template file.
10 ///
11 /// [Logger templates documentation](https://github.com/tpaau-17DB/libprettylogger?tab=readme-ov-file#logger-templates)
12 /// # Deserializing `Logger` from a `json` file:
13 ///
14 /// ```ignore
15 /// # use prettylogger::logger::Logger;
16 /// let mut logger = Logger::from_template("/path/to/template.json");
17 /// ```
18 pub fn from_template(path: &str) -> Logger {
19 let file = read_to_string(path)
20 .expect("Unable to read file!");
21 let logger: Logger = serde_json::from_str(&file)
22 .expect("Invalid JSON file!");
23
24 return logger;
25 }
26
27 /// Saves a `Logger` to template file.
28 ///
29 /// [Logger templates documentation](https://github.com/tpaau-17DB/libprettylogger?tab=readme-ov-file#logger-templates)
30 ///
31 /// # Serializing `Logger` into a `json` file
32 /// ```ignore
33 /// # use prettylogger::logger::Logger;
34 /// let mut logger = Logger::default(); // Create a default `Logger`
35 /// logger.save_template("/path/to/template.json");
36 /// ```
37 pub fn save_template(&self, path: &str) {
38 let json = serde_json::to_string_pretty(self)
39 .expect("Failed to serialize");
40
41 let mut file = File::create(path)
42 .expect("Unable to create file");
43
44 file.write_all(json.as_bytes())
45 .expect("Unable to write data");
46 }
47}