[Tidbit] making your D code more modular & unittestable

Nick Treleaven via Digitalmars-d digitalmars-d at puremagic.com
Fri Mar 10 06:58:09 PST 2017


On Thursday, 9 March 2017 at 20:54:23 UTC, Nick Sabalausky 
(Abscissa) wrote:
> On 03/08/2017 04:34 PM, H. S. Teoh via Digitalmars-d wrote:
>> 	auto parseFile(Slice)(Slice input)
>> 		if (isRandomAccessRange!Slice && hasSlicing!Slice &&
>> 		    is(ElementType!Slice : ubyte))
>> 	{
>> 		... // use nice input[x .. y] syntax, yay!
>> 		return result;
>> 	}
>>
>
> Wishlist for D3: Some brilliant form of sugar for declaring a 
> function that takes a range.

auto parseFile()(auto input if isRandomAccessRangeOf!ubyte && 
hasSlicing) {

My spin on an inline parameter constraint idea by Kenji (his 
doesn't use auto and also has more concept-like sugar):

https://wiki.dlang.org/User:9rnsr/DIP:_Template_Parameter_Constraint

As mentioned in the link, inline constraints can help make more 
specific error messages when constraints fail.



More information about the Digitalmars-d mailing list