1use config_tools::{sectioned_defaults, Config, FromSection, Section};
2
3#[derive(Debug, FromSection)]
4struct ServerSettings {
5 address: String,
6 port: u16,
7 threads: u16,
8}
9
10fn main() {
11 let config = Config::load_or_default("get-values.ini", || {
12 return sectioned_defaults! {
13 {
14 "console" => "true",
15 "log_level" => "info",
16 }
17 ["Server"] {
18 "address" => "127.0.0.1",
19 "port" => "8080",
20 "threads" => "4",
21 }
22 }
23 });
24
25 let console = config.get_as::<bool>(None, "console").unwrap();
26 let log_level = config.get(None, "log_level").unwrap();
27
28 let server_settings = ServerSettings::from_section(&config.section("Server").unwrap()).unwrap();
29
30 println!(
31 "General:\n console={:?}\n log_level={:?}",
32 console, log_level
33 );
34 println!(
35 "Server:\n address={:?}\n port={:?}\n threads={:?}",
36 server_settings.address, server_settings.port, server_settings.threads
37 );
38}