In D language, I want to iterate over a structure and perform logic specific to each annotation attached to each member. Ex.
struct Pattern {
string pattern;
}
string Max {
int max;
}
string Min {
int min;
}
struct StructToValidate {
@Pattern("^(\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$")
string phone;
@Max(20)
@Min(3)
int someValue;
}
and then in a function, do something like this:
int main() {
StructToValidate struct;
// begin pseudocode
// for each member of struct mem = [phone, someValue] {
// if (hasUDA!(mem, Pattern)) {
// do stuff like validation on the runtime value of this member
// } else if (hasUDA!(mem, Min)) {
// ...
// } else if (hasUDA!(mem, Max)) {
// ...
// }
// }
//
return 0;
}
How do I do this?
Aucun commentaire:
Enregistrer un commentaire