Parser for various Rust Strings.
Parsers for:
- Well Indent Strings (eg:
dmidecodeoutput) - KV pair Strings (eg:
lscpuoutput) - Multiline KV pair strings (eg:
systeminfooutput of windows) - Dotted tree Strings (eg:
sysctloutput)
- Rust 1.50+
nparse = "0.0.10"- Converting an
Indentstring 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:Vstring 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=Vstring 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
dottedstring 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);
}- Test
cargo t - Build Release
cargo b --release- 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