When two CDDL rules reference each other cyclically, cddl-derive emits code that errors in Rust. Ideally it should box one of the types deterministically.
Repro:
node = {
? "name": tstr,
? "child": child,
}
child = {
? "value": int,
? "parent": node,
}
Error: recursive types `Node` and `Child` have infinite size
When two CDDL rules reference each other cyclically,
cddl-deriveemits code that errors in Rust. Ideally it should box one of the types deterministically.Repro:
Error:
recursive types `Node` and `Child` have infinite size