Sereal-Path

 view release on metacpan or  search on metacpan

Iterator/Iterator.xs  view on Meta::CPAN

  CODE:
    srl_iterator_reset(aTHX_ iter);

void
unite(iter)
    srl_iterator_t *iter;
  CODE:
    srl_iterator_unite(aTHX_ iter);

void
disjoin(iter)
    srl_iterator_t *iter;
  CODE:
    srl_iterator_disjoin(aTHX_ iter);

UV
eof(iter)
    srl_iterator_t *iter;
  CODE:
    RETVAL = srl_iterator_eof(aTHX_ iter);
  OUTPUT: RETVAL

void
next(iter, n = NULL)
    srl_iterator_t *iter;
    SV *n;
  CODE:
    srl_iterator_next(aTHX_ iter, n ? SvUV(n) : 1);

void
step_in(iter, n = NULL)
    srl_iterator_t *iter;
    SV *n;
  CODE:
    srl_iterator_step_in(aTHX_ iter, n ? SvUV(n) : 1);

void
step_out(iter, n = NULL)
    srl_iterator_t *iter;
    SV *n;
  CODE:
    srl_iterator_step_out(aTHX_ iter, n ? SvUV(n) : 1);

void
rewind(iter, n = NULL)
    srl_iterator_t *iter;
    SV *n;
  CODE:
    srl_iterator_rewind(aTHX_ iter, n ? SvUV(n) : 0);

void
info(iter)
    srl_iterator_t *iter;
  PREINIT:
    UV type;
    UV length;
    int blessed;
    const char *classname;
    STRLEN classname_length;

  PPCODE:
    type = srl_iterator_info(aTHX_ iter, &length, &classname, &classname_length);
    blessed = (type & SRL_ITERATOR_INFO_BLESSED) == SRL_ITERATOR_INFO_BLESSED;

    EXTEND(SP, blessed ? 3 : 2);
    PUSHs(sv_2mortal(newSVuv(type)));
    PUSHs(sv_2mortal(newSVuv(length)));
    if (blessed) PUSHs(sv_2mortal(newSVpvn(classname, classname_length)));

IV
stack_depth(iter)
    srl_iterator_t *iter;
  CODE:
    RETVAL = srl_iterator_stack_depth(aTHX_ iter);
  OUTPUT: RETVAL

UV
stack_index(iter)
    srl_iterator_t *iter;
  CODE:
    RETVAL = srl_iterator_stack_index(aTHX_ iter);
  OUTPUT: RETVAL

UV
stack_length(iter)
    srl_iterator_t *iter;
  CODE:
    RETVAL = srl_iterator_stack_length(aTHX_ iter);
  OUTPUT: RETVAL

void
array_goto(iter, idx)
    srl_iterator_t *iter;
    IV idx;
  CODE:
    srl_iterator_array_goto(aTHX_ iter, idx);

IV
array_exists(iter, idx)
    srl_iterator_t *iter;
    IV idx;
  CODE:
    RETVAL = srl_iterator_array_exists(aTHX_ iter, idx) == SRL_ITER_NOT_FOUND ? 0 : 1;
  OUTPUT: RETVAL

IV
hash_exists(iter, name)
    srl_iterator_t *iter;
    SV *name;
  PREINIT:
    const char *keyname;
    STRLEN keyname_lenght;
  CODE:
    keyname = (const char*) SvPV(name, keyname_lenght);
    RETVAL = srl_iterator_hash_exists(aTHX_ iter, keyname, keyname_lenght) == SRL_ITER_NOT_FOUND ? 0 : 1;
  OUTPUT: RETVAL

SV *
hash_key(iter)
    srl_iterator_t *iter;
  PREINIT:



( run in 1.398 second using v1.01-cache-2.11-cpan-5511b514fd6 )