mirror of https://github.com/adamdruppe/arsd.git
new parameter default method, should work with all types now!
This commit is contained in:
parent
2bfdccc236
commit
c00de4469a
13
web.d
13
web.d
|
@ -1922,9 +1922,10 @@ bool parameterHasDefault(alias func)(int p) {
|
||||||
return a[p].length > 0;
|
return a[p].length > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
string parameterDefaultOf (alias func)(int paramNum) {
|
template parameterDefaultOf (alias func, int paramNum) {
|
||||||
auto a = parameterDefaultsOf!(func);
|
alias parameterDefaultOf = ParameterDefaultValueTuple!func[paramNum];
|
||||||
return a[paramNum];
|
//auto a = parameterDefaultsOf!(func);
|
||||||
|
//return a[paramNum];
|
||||||
}
|
}
|
||||||
|
|
||||||
sizediff_t indexOfNew(string s, char a) {
|
sizediff_t indexOfNew(string s, char a) {
|
||||||
|
@ -2575,7 +2576,8 @@ WrapperFunction generateWrapper(alias ObjectType, string funName, alias f, R)(Re
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
static if(parameterHasDefault!(f)(i)) {
|
static if(parameterHasDefault!(f)(i)) {
|
||||||
args[i] = mixin(parameterDefaultOf!(f)(i));
|
// args[i] = mixin(parameterDefaultOf!(f)(i));
|
||||||
|
args[i] = cast(type) parameterDefaultOf!(f, i);
|
||||||
} else
|
} else
|
||||||
args[i] = false;
|
args[i] = false;
|
||||||
}
|
}
|
||||||
|
@ -2590,7 +2592,8 @@ WrapperFunction generateWrapper(alias ObjectType, string funName, alias f, R)(Re
|
||||||
static if(isArray!(type) && !isSomeString!(type)) {
|
static if(isArray!(type) && !isSomeString!(type)) {
|
||||||
args[i] = null;
|
args[i] = null;
|
||||||
} else static if(parameterHasDefault!(f)(i)) {
|
} else static if(parameterHasDefault!(f)(i)) {
|
||||||
args[i] = mixin(parameterDefaultOf!(f)(i));
|
//args[i] = mixin(parameterDefaultOf!(f)(i));
|
||||||
|
args[i] = cast(type) parameterDefaultOf!(f, i);
|
||||||
} else {
|
} else {
|
||||||
throw new InsufficientParametersException(funName, "arg " ~ name ~ " is not present");
|
throw new InsufficientParametersException(funName, "arg " ~ name ~ " is not present");
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue