On Wednesday, 17 November 2021 at 14:51:58 UTC, Abby wrote:
Hello I would like to create validation mixin or mixin template
which would return on error.
Something like this:
```
mixin template Validate(a, b)
{
if(a > b)
{
writeln("invalid input");
return false;
}
}
bool test(a,b)
{
mixin Validate!(a,b);
on valid code
return true;
}
```
I'll add My 5 cents: with aliases this a little bit flexibilier,
but without temporary function declaration this doesn't work
```D
import std.stdio;
mixin template validation(alias a, alias b)
{
mixin(
q{
bool x(){
writeln("a: ",a, " b: ", b);
if (a > b)
{
writeln("invalid input");
return false;
}
return true;
}
}
);
}
bool test(int a, int b)
{
mixin validation!(a, b);
if (!x()) return false;
return true;
}
void main()
{
writeln("test result: ", test(2,1));
}
```