Skip to content

marirs/nparse

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

No releases published

Packages

No packages published

Languages