enum Y { a, b, c, } static struct A { double g; float d; } @serdeProxy!A static struct B { int f; } @serdeProxy!(B[Y][string]) static union C { int f; } @serdeProxy!(B[]) static interface E { int f() @property; } enum N { a, b } static class D { C c; @serdeProxy!(E[]) int d; N e; } @serdeAlgebraicAnnotation("$F") @serdeProxy!D static struct F { int f; } static assert (serdeGetSerializationKeysRecurse!F == ["a", "b", "c", "d", "e", "g"]); import mir.algebraic; static assert (serdeGetSerializationKeysRecurse!(Nullable!(F, int)) == ["a", "b", "c", "d", "e", "g", "$F"]);
Serialization members final proxy keys (recursive)