get_values/
get_values.rs

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}