deku 0.20.3

bit level serialization/deserialization proc-macro for structs
Documentation
error: `id_type` or `id` must be specified on enum
 --> tests/test_compile/cases/enum_validation.rs:5:6
  |
5 | enum Test1 {}
  |      ^^^^^

error: conflicting: both `id_type` and `id` specified on enum
  --> tests/test_compile/cases/enum_validation.rs:10:6
   |
10 | enum Test2 {}
   |      ^^^^^

error: conflicting: both `id` and `id_pat` specified on variant
  --> tests/test_compile/cases/enum_validation.rs:16:17
   |
16 |     #[deku(id = "1", id_pat = "2..=3")]
   |                 ^^^

error: `id_type` only supported on enum
  --> tests/test_compile/cases/enum_validation.rs:22:18
   |
22 | #[deku(id_type = "u8")]
   |                  ^^^^

error: `bits` only supported on enum
  --> tests/test_compile/cases/enum_validation.rs:29:15
   |
29 | #[deku(bits = 1)]
   |               ^

error: `bits` only supported on enum
  --> tests/test_compile/cases/enum_validation.rs:36:15
   |
36 | #[deku(bits = 1)]
   |               ^

error: `id_type` only supported on enum
  --> tests/test_compile/cases/enum_validation.rs:43:18
   |
43 | #[deku(id_type = "test")]
   |                  ^^^^^^

error: DekuRead: `id` must be specified on non-unit variants
  --> tests/test_compile/cases/enum_validation.rs:52:5
   |
52 |     A,
   |     ^

error: DekuRead: `id` must be specified on non-unit variants
  --> tests/test_compile/cases/enum_validation.rs:59:5
   |
59 |     A,
   |     ^

error: error: `id_pat` should be used for `_`
  --> tests/test_compile/cases/enum_validation.rs:67:5
   |
67 |     A,
   |     ^

error: DekuRead: `id` must be specified on non-unit variants
  --> tests/test_compile/cases/enum_validation.rs:76:5
   |
76 |     B(u8),
   |     ^

error: DekuRead: id_pat id storage cannot have attributes
  --> tests/test_compile/cases/enum_validation.rs:82:10
   |
82 | pub enum Test12 {
   |          ^^^^^^

error: DekuRead: id_pat id storage cannot have attributes
  --> tests/test_compile/cases/enum_validation.rs:90:10
   |
90 | pub enum Test13 {
   |          ^^^^^^

error: DekuRead: id_pat id storage cannot have attributes
  --> tests/test_compile/cases/enum_validation.rs:98:10
   |
98 | pub enum Test14 {
   |          ^^^^^^

error: DekuWrite: cannot determine write `id`. must provide storage for the id or discriminant
   --> tests/test_compile/cases/enum_validation.rs:132:5
    |
132 |     B,
    |     ^

error: DekuWrite: `id_type` with non-unit variants requires primitive representation i.e. `repr(inttype)`
   --> tests/test_compile/cases/enum_validation.rs:139:5
    |
139 |     A = 0,
    |     ^

error: DekuRead: `id_type` with non-unit variants requires primitive representation i.e. `repr(inttype)`
   --> tests/test_compile/cases/enum_validation.rs:148:5
    |
148 |     Base = 0x00,
    |     ^^^^

error: DekuRead: `repr` must match `id_type`
   --> tests/test_compile/cases/enum_validation.rs:156:5
    |
156 |     Base = 0x00,
    |     ^^^^

error: DekuRead: `id_type` with non-unit variants requires primitive representation i.e. `repr(inttype)`
   --> tests/test_compile/cases/enum_validation.rs:163:5
    |
163 |     Base = 0x00,
    |     ^^^^

error: DekuRead: `id_type` with non-unit variants requires primitive representation i.e. `repr(inttype)`
   --> tests/test_compile/cases/enum_validation.rs:170:5
    |
170 |     Base = 0x00,
    |     ^^^^

error: DekuRead: `id_type` with non-unit variants requires primitive representation i.e. `repr(inttype)`
   --> tests/test_compile/cases/enum_validation.rs:177:5
    |
177 |     Base = 0x00,
    |     ^^^^

error: DekuWrite: `id_type` with non-unit variants requires primitive representation i.e. `repr(inttype)`
   --> tests/test_compile/cases/enum_validation.rs:184:5
    |
184 |     Base = 0x00,
    |     ^^^^

error: DekuWrite: `repr` must match `id_type`
   --> tests/test_compile/cases/enum_validation.rs:192:5
    |
192 |     Base = 0x00,
    |     ^^^^

error: DekuWrite: `id_type` with non-unit variants requires primitive representation i.e. `repr(inttype)`
   --> tests/test_compile/cases/enum_validation.rs:199:5
    |
199 |     Base = 0x00,
    |     ^^^^

error: DekuWrite: `id_type` with non-unit variants requires primitive representation i.e. `repr(inttype)`
   --> tests/test_compile/cases/enum_validation.rs:206:5
    |
206 |     Base = 0x00,
    |     ^^^^

error: DekuWrite: `id_type` with non-unit variants requires primitive representation i.e. `repr(inttype)`
   --> tests/test_compile/cases/enum_validation.rs:213:5
    |
213 |     Base = 0x00,
    |     ^^^^

error[E0732]: `#[repr(inttype)]` must be specified for enums with explicit discriminants and non-unit variants
   --> tests/test_compile/cases/enum_validation.rs:138:1
    |
138 | pub enum Test19 {
    | ^^^^^^^^^^^^^^^
139 |     A = 0,
    |         - explicit discriminant specified here
140 |     #[deku(id_pat = "_")]
141 |     B(u8),
    |     - non-unit discriminant declared here

error[E0308]: `?` operator has incompatible types
   --> tests/test_compile/cases/enum_validation.rs:104:28
    |
104 | #[derive(PartialEq, Debug, DekuRead, DekuWrite)]
    |                            ^^^^^^^^ expected `u8`, found `u32`
    |
    = note: `?` operator cannot convert from `u32` to `u8`
    = note: this error originates in the derive macro `DekuRead` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0308]: `?` operator has incompatible types
   --> tests/test_compile/cases/enum_validation.rs:112:28
    |
112 | #[derive(PartialEq, Debug, DekuRead, DekuWrite)]
    |                            ^^^^^^^^ expected `u16`, found `[u8; 32]`
    |
    = note: `?` operator cannot convert from `[u8; 32]` to `u16`
    = note: this error originates in the derive macro `DekuRead` (in Nightly builds, run with -Z macro-backtrace for more info)