# rjson : a minimal json parser for rust
* Contain a single standalone `lib.rs` that do all the jobs.
* Impl the traits with your own structs before `parse`.
* A simple Impl can be, `enum` for `Value`, the same `enum` for `Null`, `Vec` for `Array` and `BTreeMap` for `Object`.
* It requires only `core` and `alloc`, nothing else, including `std`.
* In `no_std` environment, it need a global allocator to work.
## Reminder
* We allow `,` after the last item/member of Array/Object.
* We treat unescaped line breaks as normal char, and ignore escaped line breaks.
* We do not support surrogate unicode char.
* We use `f64` for all numbers, but you can use others. Remind: `f64` means `i52`.
* We take `&[char]`, not `&[u8]`, and not `&str`.
* No `stringify` or `encode`, because they should not be a part of the traits.
* Instead of returning `None`, we simply ignore chars after the data.
* The position where data ends is returned through `index`. You can compare it with `len() - 1`.
* This value is also useful when `Option::None` returned, by indicating where the syntax error occurs.
* `parse` may return all possible values, not only `Array` and `Object`.