Build Status ![crates-badge]

configster

Rust library for parsing configuration files

Config file format

The 'option' can be any string with no whitespace.

arbitrary_option = false max_users = 30

The value for an option following the equal sign may have "attributes" that are separated by a delimiter. The delimiter is specified when calling parse_file():

parse_file("./config_test.conf", ',')

``` option = Blue, light, shiny

option = nothing, void, empty, commented_out

```

An option is not required to be followed by a value. It can be used to disable a default feature.

FeatureOff

API

Calling parse_file() will return a single vector containing a struct (OptionProperties) for each option line in the config file. The attributes for a value are stored in a vector within the "Value" struct.

```

[derive(Debug, PartialEq)]

pub struct Value { pub primary: String, pub attributes: Vec, }

[derive(Debug, PartialEq)]

pub struct OptionProperties { pub option: String, pub value: Value, } ```

Example Code

/// use std::io; /// /// fn main() -> Result<(), io::Error> { /// /// let config_vec = configster::parse_file("./config_test.conf", ',')?; /// /// for i in &config_vec { /// println!("Option:'{}' | value '{}'", i.option, i.value.primary); /// /// for j in &i.value.attributes { /// println!("attr:'{}`", j); /// } /// println!(); /// } /// Ok(()) /// }

See docs.rs/configster/ for generated API documentation.

Contributing

See CONTRIBUTING.md