fixed-json 0.1.0

No-std, no-allocation JSON parsing into caller-owned fixed storage
Documentation
use fixed_json::{Array, Attr, error_string, read_object};

const ARR1_LENGTH: usize = 8;

fn main() {
    let input = std::env::args().nth(1).expect("usage: example4 JSON");
    let mut cur = 0usize;

    while cur < input.len() {
        let mut flag1 = false;
        let mut arr1 = [0; ARR1_LENGTH];
        let mut arr1_count = 0usize;
        let status = {
            let mut attrs = [
                Attr::boolean("flag1", &mut flag1),
                Attr::array(
                    "arr1",
                    Array::Integers {
                        store: &mut arr1,
                        count: Some(&mut arr1_count),
                    },
                ),
            ];
            read_object(&input[cur..], &mut attrs)
        };
        println!(
            "status: {}, flag1: {}",
            status
                .map(|n| {
                    cur += n;
                    0
                })
                .unwrap_or_else(|e| e as i32),
            flag1 as u8
        );
        for value in &arr1[..arr1_count] {
            println!("arr1 = {value}");
        }
        if let Err(err) = status {
            println!("{}", error_string(err));
            break;
        }
    }
}