Open sempervictus opened 5 months ago
Come to think of it... deku::size_of(struct)
would be nice for the nested complexity of enums structured this way.
to_bytes()
is only generated by types not using ctx: https://docs.rs/deku/latest/deku/trait.DekuContainerRead.html
You could use https://docs.rs/deku/latest/deku/attributes/index.html#ctx_default, if the ctx
wouldn't affect your .len
.
Const size generation was also asked for here: #307
Thanks for the pointers. Unfortunately ctx is how the type is passed from headed to typed-enum-body, but I'll see if I can make the default one work. Happen to have any dirty tricks in your code bag to get sizes for those lower-level child structs/enums or getting them to marshal into bytes somehow? Try into should work but being behind a reference breaks that as well.
@sempervictus I know it's been a while, but providing a full code example (even if it's failing) will make it easier for us to try and find a solution, it's hard/wasteful for us to make assumptions on your intention and binary format
When using complex structures such as:
getting
update
to work becomes non-trivial since there's no good way to count up the sizes of thoseSvc
structs given that they arethemselves nested structures including typed enums based on a value in the
Svc
hdr
struct. Attempting tocauses
as do attempts to
deref()
in themap
. Similarlyto_bytes()
is not found on&Svc
:facepalm:Ideally references would accept trait methods the same way as the owned structs, otherwise are there any macros or other sugar available to access these deeply nested members and pull the byte-sizes for summation?