1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
#ifndef __CONSTRAINTS_H__
#define __CONSTRAINTS_H__
struct Constraint;
typedef bool ConstraintFunc(pTHX_ struct Constraint *c, SV *value);
struct Constraint
{
ConstraintFunc *func;
int flags; /* avoids needing an entire SV just for a few numeric flag bits */
size_t n;
SV *args[0];
};
#define stringify_constraint(c) DataChecks_stringify_constraint(aTHX_ c)
#define stringify_constraint_sv(csv) DataChecks_stringify_constraint(aTHX_ (struct Constraint *)SvPVX(csv))
SV *DataChecks_stringify_constraint(pTHX_ struct Constraint *c);
#define extract_constraint(sv) DataChecks_extract_constraint(aTHX_ sv)
SV *DataChecks_extract_constraint(pTHX_ SV *sv);
void boot_Data_Checks__constraints(pTHX);
#endif
|