Function format_settings

Source
pub fn format_settings(file: &File) -> (String, Vec<FormatEntryError>)
Expand description

Converts a layout plus values into a formatted settings file, opposite of parse_settings()

Examples found in repository?
examples/main.rs (line 44)
6fn main() {
7	
8	
9	
10	// load settings
11	
12	pub const UPDATER_FUNCTIONS: &[fn(&mut HashMap<String, ecf::Value>, &())] = &[
13		update_1_to_2, // updates from format 1 to format 2
14		// etc
15	]; // because there's 1 updater function, the crate will know that the current format version is 2
16	
17	pub fn update_1_to_2(settings: &mut HashMap<String, ecf::Value>, args: &()) {
18		println!("this example doesn't actually have a format 2, this is just to show how updates would be done");
19	}
20	
21	let (mut ecf_file, errors) = ecf::parse_settings(include_str!("example_settings.ecf"), UPDATER_FUNCTIONS, &());
22	
23	// print file data
24	println!("======== Layout: ========");
25	for layout_entry in &ecf_file.layout {println!("{layout_entry:?}");}
26	
27	println!("\n\n\n======== Values: ========");
28	for (key, value) in &ecf_file.values {println!("{key}: {value:?}");}
29	
30	println!("\n\n\n======== Errors: ========");
31	for error in errors {println!("{error:?}");}
32	
33	
34	
35	// alter settings
36	
37	ecf_file.insert(String::from("example key"), ecf::Value::Empty);
38	ecf_file.insert(String::from("new key"), ecf::Value::String (String::from("new value")));
39	
40	
41	
42	// save settings
43	
44	let (contents, errors) = ecf::format_settings(&ecf_file);
45	
46	println!("\n\n\n======== New Contents: ========");
47	println!("\"\"\"");
48	println!("{contents}");
49	println!("\"\"\"");
50	
51	println!("\n\n\n======== Errors: ========");
52	for error in errors {println!("{error:?}");}
53	
54	
55	
56}