9 releases
0.0.10 | Oct 21, 2023 |
---|---|
0.0.9 | Oct 20, 2023 |
0.0.4 | Apr 29, 2021 |
0.0.3 | Jan 31, 2021 |
#556 in Parser implementations
588 downloads per month
25KB
489 lines
nparse 0.0.10
Parser for various Rust Strings.
Parsers for:
- Well Indent Strings (eg:
dmidecode
output) - KV pair Strings (eg:
lscpu
output) - Multiline KV pair strings (eg:
systeminfo
output of windows) - Dotted tree Strings (eg:
sysctl
output)
Requirements
- Rust 1.50+
Usage
nparse = "0.0.10"
Example use
- Converting an
Indent
string into json
use std::{fs::File, io::Read};
use nparse::*;
fn main () {
let path = "data/dmidecode.txt";
let mut out = String::new();
{
let mut f = File::open(path).unwrap();
f.read_to_string(&mut out).unwrap();
}
let result = out.indent_to_json();
println!("{:?}", result);
}
- Converting a
K:V
string into json
use std::{fs::File, io::Read};
use nparse::*;
fn main () {
let path = "data/lscpu.txt";
let mut out = String::new();
{
let mut f = File::open(path).unwrap();
f.read_to_string(&mut out).unwrap();
}
let result = out.kv_str_to_json();
println!("{:?}", result);
}
- Converting a
K=V
string into json
use std::{fs::File, io::Read};
use nparse::*;
fn main () {
let path = "data/os-release.txt";
let mut out = String::new();
{
let mut f = File::open(path).unwrap();
f.read_to_string(&mut out).unwrap();
}
let result = out.kev_str_to_json();
println!("{:?}", result);
}
- Converting a
dotted
string into json (eg:parent.sub.sub: val
)
use std::{fs::File, io::Read};
use nparse::*;
fn main () {
let path = "data/sysctl.txt";
let mut out = String::new();
{
let mut f = File::open(path).unwrap();
f.read_to_string(&mut out).unwrap();
}
let result = out.dotted_tree_to_json();
println!("{:?}", result);
}
Tests, Build
- Test
cargo t
- Build Release
cargo b --release
Examples
- Parse dmidecode output to json
cargo run --example dmidecode
- Parse sysctl output to json
cargo run --example sysctl
- Parse lscpu to json
cargo run --example lscpu
- Parse windows systeminfo to json
cargo run --example systeminfo
Dependencies
~1.9–2.7MB
~50K SLoC