There is certain macro syntax which should be parsed or not parsed depending on which XRBK traits one derives.
For example, a let element would be parsed if any of these traits are derived:
X11Size
ConstantX11Size
Readable
...but without the source used to write it:
Only if Writable is derived would it have a source:
let name_len: u16 = name => name.len() as u16
Also, if the macro syntax is parsed conditionally depending on which traits are derived, then all structs should be parsed custom, not just those with at least one XRBK trait. This is so that requests, replies, events, and errors may still be implemented without deriving their XRBK traits (you really should, but for consistency, and therefore each of learning, it wouldn't be required). It also means better errors can be given.
There is certain macro syntax which should be parsed or not parsed depending on which XRBK traits one derives.
For example, a let element would be parsed if any of these traits are derived:
X11SizeConstantX11SizeReadable...but without the source used to write it:
Only if
Writableis derived would it have a source:Also, if the macro syntax is parsed conditionally depending on which traits are derived, then all structs should be parsed custom, not just those with at least one XRBK trait. This is so that requests, replies, events, and errors may still be implemented without deriving their XRBK traits (you really should, but for consistency, and therefore each of learning, it wouldn't be required). It also means better errors can be given.