structio 0.8.0

High performance JSON and BEVE for Rust structs. No dependencies, no proc-macros, no intermediate representation.
Documentation
error[E0277]: the trait bound `Register: structio::json::Read<'_>` is not satisfied
  --> tests/ui/no_read_impl.rs:31:1
   |
31 | structio::object!(Surface { id });
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   | |
   | unsatisfied trait bound
   | required by a bound introduced by this call
   |
help: the trait `structio::json::Read<'_>` is not implemented for `Register`
  --> tests/ui/no_read_impl.rs:6:1
   |
 6 | struct Register(u32);
   | ^^^^^^^^^^^^^^^
   = note: a type becomes readable by being declared with `structio::object!` or `#[derive(Structio)]`, or by a `json::Read` impl written by hand
   = note: a declaration generates both directions unless it narrows to one: a struct that is only ever written is declared `object!(write_only ..)` or `#[structio(write_only)]`, and then nothing in it needs a read impl
   = note: where the struct really is read, a stub whose body is `p.skip_value()` is legitimate there
   = help: the following other types implement trait `structio::json::Read<'de>`:
             $IMPLEMENTORS
   = note: this error originates in the macro `$crate::__json_read_impls` which comes from the expansion of the macro `structio::object` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0277]: the trait bound `Register: structio::beve::Read<'_>` is not satisfied
  --> tests/ui/no_read_impl.rs:31:1
   |
31 | structio::object!(Surface { id });
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   | |
   | unsatisfied trait bound
   | required by a bound introduced by this call
   |
help: the trait `structio::beve::Read<'_>` is not implemented for `Register`
  --> tests/ui/no_read_impl.rs:6:1
   |
 6 | struct Register(u32);
   | ^^^^^^^^^^^^^^^
   = note: a type becomes readable by being declared with `structio::object!` or `#[derive(Structio)]`, or by a `beve::Read` impl written by hand
   = note: a declaration generates both directions unless it narrows to one: a struct that is only ever written is declared `object!(write_only ..)` or `#[structio(write_only)]`, and then nothing in it needs a read impl
   = note: where the struct really is read, a stub whose body is `r.skip_value()` is legitimate there
   = help: the following other types implement trait `structio::beve::Read<'de>`:
             $IMPLEMENTORS
   = note: this error originates in the macro `$crate::__beve_read_impls` which comes from the expansion of the macro `structio::object` (in Nightly builds, run with -Z macro-backtrace for more info)