File: constraints.h

package info (click to toggle)
libdata-checks-perl 0.11-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 328 kB
  • sloc: ansic: 1,155; perl: 823; pascal: 12; sh: 6; makefile: 3
file content (25 lines) | stat: -rw-r--r-- 723 bytes parent folder | download | duplicates (2)
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