Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

nparse 0.0.10

Build Status

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

Releases

Packages

Used by

Contributors

Languages