8 releases
0.3.1 | Dec 1, 2024 |
---|---|
0.3.0 | Aug 20, 2023 |
0.2.1 | Jan 22, 2023 |
0.1.3 | Nov 20, 2021 |
0.1.1 | Jun 21, 2020 |
#786 in Parser implementations
226 downloads per month
Used in procmon-oprs
14KB
280 lines
Light INI parser
This library implements an event-driven parser for the INI file format.
It doesn't load data in a container. It's an alternative to rust-ini that avoids building an intermediate hash map if it's not necessary.
[dependencies]
light_ini = "0.3"
See the documentation and examples for details.
Format
-
There is no limitation in the names of the properties.
-
Comments are only allowed in their own line. The default character to start a comment is
;
. UseIniParser::with_start_comment
to use a different character such as#
. -
There is no escape or quoting characters
License
Licensed under MIT license.
lib.rs
:
Light Ini file parser.
light-ini
implements an event-driven parser for the INI file format.
The handler must implement IniHandler
.
use light_ini::{IniHandler, IniParser, IniHandlerError};
struct Handler {}
impl IniHandler for Handler {
type Error = IniHandlerError;
fn section(&mut self, name: &str) -> Result<(), Self::Error> {
println!("section {}", name);
Ok(())
}
fn option(&mut self, key: &str, value: &str) -> Result<(), Self::Error> {
println!("option {} is {}", key, value);
Ok(())
}
fn comment(&mut self, comment: &str) -> Result<(), Self::Error> {
println!("comment: {}", comment);
Ok(())
}
}
let mut handler = Handler{};
let mut parser = IniParser::new(&mut handler);
parser.parse_file("example.ini");