On Monday, 12 June 2017 at 17:51:05 UTC, Mike Parker wrote:
Now that I've got a few DIP reviews under my belt, I've got a
good enough handle on the process to lay it out in
documentation form. To that end [1], I've kept the general
structure that Dicebot initially set down, changing the details
to better reflect my view of how it should all work (I still
need to update the existing DIPs to reflect a couple of
changes). I've also revised Dicebot's guidelines on DIP writing
[2]. Much of his original advice is still there. That document
is sure to evolve.
Feedback on all of this is welcome.
While I have your attention, Sebastian recently revived an old
DIP on in-place struct initialization. I invite everyone to
come and give feedback on that [3], but *please* read the
updated README before doing so, particularly the section titled
'Review Process' so you can fully understand what's expected of
reviews at this stage of the process (what I now call the
'Draft Review' stage). I haven't looked at it yet, but I expect
to do so next week.
I still need to review the recent updates to Zach Tollen's
proposal [4] (Improve Contract Usability), and if all checks
out I'll be merging it as DIP 1009. You can expect the first
review round shortly thereafter.
[1] https://github.com/dlang/DIPs/blob/master/README.md
[2] https://github.com/dlang/DIPs/blob/master/GUIDELINES.md
[3] https://github.com/dlang/DIPs/pull/71
[4] https://github.com/dlang/DIPs/pull/66
Hi,
the work on this dip is highly appreciated. For my AWS SDK this
DIP would
make the coding much more readable and also smaller for several
use cases.
I generate structures out of the AWS API information. Several UDA
information has to be stored. Struct initializer for UDA
structures will look great:
struct CreateTableInput
{
@FieldInfo({memberName: "TableName"})
TableName tableName;
@FieldInfo({memberName: "AttributeDefinitions", minLength: 1})
AttributeDefinitions attributeDefinitions;
}
Second scenario is the actual usage of these structs. Using
struct initializer in method signature feels natural:
invoker.execute([
new CreateBucketCommand(client, {
bucket: "MyBucket1",
createBucketConfiguration: {
locationConstraint:
BucketLocationConstraint.EU_CENTRAL_1
}
}),
new CreateBucketCommand(client, {
bucket: "MyBucket2",
createBucketConfiguration: {
locationConstraint:
BucketLocationConstraint.EU_CENTRAL_1
}
})
]);
Kind regards
André