On Monday, 7 October 2024 at 17:20:00 UTC, ryuukk_ wrote:
We went from trying to do that: ```d struct EntityDef { struct { int hp; } stats; } ``` to getting suggested to do that instead: ```d struct Foo { int bar; //struct {/* Baz baz; struct Baz { auto opAssign(int value) => baz = value;//*/ int baz; } } void main() { Foo foo; foo.bar = 7; foo.baz = 42; imported!"std.stdio".writeln(foo); /* with opAssign() Anonymous Foo(7, Baz(42)) or Foo(7, 42) */ } ```
I understand you, but you misunderstood me. You probably brought up a problem that can't be solved quickly (or ever). I wanted to acknowledge D's praise and bring a different perspective. Would this solution work for you?
```d template Foo() { int hp; } struct EntityDef { mixin Foo stats; } void main() { auto num = EntityDef(41); assert(num.stats.hp == 41); with(num) { stats.hp = 42; assert(stats.hp == 42); } } ``` SDB@79