Everything is public by default, and you can't overload and derive from structs so final has no effect

there less visual noise:

```D
struct gudtPosition {

void reset() { pintLeft1 = pintTop1 = pintRight1 = pintBottom1 = 0; }

   private ushort pintLeft1 = 0;
   private ushort pintTop1 = 0;
   private ushort pintRight1 = 0;
   private ushort pintBottom1 = 0;

   const ushort left1() { return this.pintLeft1; }
   const ushort top1() { return this.pintTop1; }
   const ushort right1() { return this.pintRight1; }
   const ushort bottom1() { return this.pintBottom1; }

ushort left0() { return this.pintLeft1 = 0 ? 0 : cast(ushort)(this.pintLeft1 - 1); } ushort top0() { return this.pintTop1 = 0 ? 0 : cast(ushort)(this.pintTop1 - 1); } ushort right0() { return this.pintRight1 = 0 ? 0 : cast(ushort)(this.pintRight1 - 1); } ushort bottom0() { return this.pintBottom1 = 0 ? 0 : cast(ushort)(this.pintBottom1 - 1); }

void left1(const ushort lintPosition) { this.pintLeft1 = lintPosition; } void top1(const ushort lintPosition) { this.pintTop1 = lintPosition; } void right1(const ushort lintPosition) { this.pintRight1 = lintPosition; } void bottom1(const ushort lintPosition) { this.pintBottom1 = lintPosition; }

   string caption0() { return /// eg: from (24,24) to (48,48)
      r"from ("c ~
      std.format.format(r"%d"c, this.left0) ~
      r","c ~
      std.format.format(r"%d"c, this.top0) ~
      r") to ("c ~
      std.format.format(r"%d"c, this.right0) ~
      r","c ~
      std.format.format(r"%d"c, this.bottom0) ~
      r")"c;
   }

   string caption1() { return /// eg: from (24,24) to (48,48)
      r"from ("c ~
      std.format.format(r"%d"c, this.pintLeft1) ~
      r","c ~
      std.format.format(r"%d"c, this.pintTop1) ~
      r") to ("c ~
      std.format.format(r"%d"c, this.pintRight1) ~
      r","c ~
      std.format.format(r"%d"c, this.pintBottom1) ~
      r")"c;
   }

}
```

Reply via email to