rsonpath-syntax 0.4.1

A JSONPath parser.
Documentation
use std::io::Read;
use std::process::ExitCode;

fn main() -> ExitCode {
    let args: Vec<_> = std::env::args().collect();

    if args.len() != 1 {
        eprintln!("no arguments are expected");
        return ExitCode::FAILURE;
    }

    let input = {
        let mut buf = String::new();
        if let Err(err) = std::io::stdin().read_to_string(&mut buf) {
            eprintln!("error reading stdin: {err}");
            return ExitCode::FAILURE;
        }
        buf
    };

    let res = rsonpath_syntax::parse(&input);

    match res {
        Ok(x) => println!("OK: {x:?}\nDISPLAY:{x}\nINPUT: {input}"),

        Err(err) => {
            println!("DBGERR: {err:?}");
            #[cfg(feature = "color")]
            println!("ERR: {}\nINPUT: {input}", err.colored());
            #[cfg(not(feature = "color"))]
            println!("ERR: {err}\nINPUT: {input}");
        }
    }

    ExitCode::SUCCESS
}