Is there any way to simulate the cascade operator (..) of Dart in D? This operator makes fluid initialization simple.

I am using Dart for code generation but would like to consider D if I can find a convenient replacement for the following declarative style:

    var dateRange = struct('date_range')
      ..doc = 'Basic pair of start and end dates'
      ..unitTest = true
      ..publicSection = true
      ..members = [
        member('start_date')
        ..type = 'Date',
        member('end_date')
        ..type = 'Date',
      ];

So struct is a function that returns an instance of Struct.

    class Struct extends Decls {
      ...
      /// Documentation for this D struct
      String doc;
      /// List of members of this class
      List<Member> members = [];
      bool unitTest = false;
      ...
    }

..doc = ... assigns to the Struct.doc field and returns the original Struct instance so that ..unitTest = true can be applied to the original Struct instance, etc.

What is the best way to achieve simple declarative style for very large initialization objects?

Thanks,
Dan

Reply via email to