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(
12 "get-values.ini",
13 sectioned_defaults! {
14 {
15 "console" => "true",
16 "log_level" => "info",
17 }
18 ["Server"] {
19 "address" => "127.0.0.1",
20 "port" => "8080",
21 "threads" => "4",
22 }
23 },
24 );
25
26 let console = config.get_as::<bool>(None, "console").unwrap();
27 let log_level = config.get(None, "log_level").unwrap();
28
29 let server_settings = ServerSettings::from_section(&config.section("Server").unwrap()).unwrap();
30
31 println!(
32 "General:\n console={:?}\n log_level={:?}",
33 console, log_level
34 );
35 println!(
36 "Server:\n address={:?}\n port={:?}\n threads={:?}",
37 server_settings.address, server_settings.port, server_settings.threads
38 );
39}