Revised DIP Info

Andre Pany via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Wed Jun 14 03:32:50 PDT 2017


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é




More information about the Digitalmars-d-announce mailing list