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("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}