JSON-Schema-Fast

 view release on metacpan or  search on metacpan

Fast.xs  view on Meta::CPAN

        SV *data
    CODE:
        RETVAL = jsf_is_valid(aTHX_ jsf_compiled_of(aTHX_ compiled), data);
    OUTPUT:
        RETVAL

void
validate(compiled, data)
        SV *compiled
        SV *data
    PPCODE:
    {
        jsf_compiled_t *C = jsf_compiled_of(aTHX_ compiled);
        AV *errs = (AV *)sv_2mortal((SV *)newAV());
        int ok = jsf_run(aTHX_ C, data, errs);
        if (GIMME_V == G_ARRAY) {
            if (ok) { mXPUSHs(newSViv(1)); }
            else    { mXPUSHs(newSViv(0)); mXPUSHs(newRV_inc((SV *)errs)); }
        } else {
            mXPUSHs(newSViv(ok ? 1 : 0));
        }

Fast.xs  view on Meta::CPAN

    CODE:
        RETVAL = jsf_is_valid(aTHX_ jsf_compiled_of(aTHX_ self), data);
    OUTPUT:
        RETVAL

# list context: (1) if valid, else (0, \@errors); scalar context: the boolean.
void
validate(self, data)
        SV *self
        SV *data
    PPCODE:
    {
        jsf_compiled_t *C = jsf_compiled_of(aTHX_ self);
        AV *errs = (AV *)sv_2mortal((SV *)newAV());
        int ok = jsf_run(aTHX_ C, data, errs);
        if (GIMME_V == G_ARRAY) {
            if (ok) { mXPUSHs(newSViv(1)); }
            else    { mXPUSHs(newSViv(0)); mXPUSHs(newRV_inc((SV *)errs)); }
        } else {
            mXPUSHs(newSViv(ok ? 1 : 0));
        }



( run in 0.736 second using v1.01-cache-2.11-cpan-4e7a2411597 )