Request for review: std.net.isemail

Nick Sabalausky a at a.a
Wed Mar 23 03:46:35 PDT 2011


"Jacob Carlborg" <doob at me.com> wrote in message 
news:imcgim$1sk4$1 at digitalmars.com...
> On 2011-03-22 23:21, dsimcha wrote:
>
>> 3. What are EmailStatusCode.On and EmailStatusCode.Off?
>
> I had some problem figuring out how I wanted to solve this. In the PHP 
> version the function takes a parameter, errorLevel, indicating what error 
> level you want. Any status code above will be returned as-is and status 
> codes below will be returned as "valid". In addition to this you can pass 
> "true" or "false". If "true", any status code except "valid" will be 
> considered invalid.  If "false", the function just returns "true" or 
> "false" rather than an integer error or warning.
>
> The problem I had was that since D is statically typed you cannot mix 
> integer and boolean values in one parameter, specially not if the integer 
> parameter is an enum. Since I wanted to be able to pass both a 
> EmailStatusCode value as errorLevel and "true" and "false" I added 
> EmailStatusCode.On and EmailStatusCode.Off representing "true" and 
> "false". I should document this.
>

In that case, I would suggest:

- Rename EmailStatusCode.On to EmailStatusCode.Any

- Remove EmailStatusCode.Off, and split isEmail into two overloads:

EmailStatus isEmail(T)(const(T)[] email, bool checkDNS, EmailStatusCode 
errorLevel);

and

bool isEmail(T)(const(T)[] email, bool checkDNS = false);

That second one would be the equivalent of passing "false" into the PHP 
version.




More information about the Digitalmars-d mailing list