File: constraints.h

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