File-Raw-Separated
view release on metacpan or search on metacpan
Separated.xs view on Meta::CPAN
# =====================================================================
# Parser entry points
# =====================================================================
#
# Nine XSUBs, three logical groups, all thin shims over the do_* helpers
# above:
#
# Unified (dialect read from opts hash, defaults to csv):
# parse_buf($input [, \%opts]) -> \@rows
# parse_buf_each($input, $cb [, \%opts])
# parse_stream($path, $cb [, \%opts])
#
# CSV-pinned (dialect key in opts ignored):
# csv_parse_buf, csv_parse_buf_each, csv_parse_stream
#
# TSV-pinned:
# tsv_parse_buf, tsv_parse_buf_each, tsv_parse_stream
#
# xsubpp registers them in package File::Raw::Separated; users get them
# under `file_` prefix in their own namespace via `use File::Raw::Separated
# qw(import|:all|:unified|:csv|:tsv|<name>)` (see import dispatcher above).
#
# parse_stream / *_parse_stream open the file directly via PerlLIO,
# bypassing File::Raw's read hook (no recursion / no double-parse).
SV *
parse_buf(input, opts = NULL)
SV *input
SV *opts
CODE:
RETVAL = do_parse_buf(aTHX_ "parse_buf", input, opts, DIALECT_AUTO);
OUTPUT:
RETVAL
SV *
csv_parse_buf(input, opts = NULL)
SV *input
SV *opts
CODE:
RETVAL = do_parse_buf(aTHX_ "csv_parse_buf", input, opts, DIALECT_CSV);
OUTPUT:
RETVAL
SV *
tsv_parse_buf(input, opts = NULL)
SV *input
SV *opts
CODE:
RETVAL = do_parse_buf(aTHX_ "tsv_parse_buf", input, opts, DIALECT_TSV);
OUTPUT:
RETVAL
void
parse_buf_each(input, code, opts = NULL)
SV *input
SV *code
SV *opts
PPCODE:
do_parse_buf_each(aTHX_ "parse_buf_each", input, code, opts, DIALECT_AUTO);
XSRETURN_EMPTY;
void
csv_parse_buf_each(input, code, opts = NULL)
SV *input
SV *code
SV *opts
PPCODE:
do_parse_buf_each(aTHX_ "csv_parse_buf_each", input, code, opts, DIALECT_CSV);
XSRETURN_EMPTY;
void
tsv_parse_buf_each(input, code, opts = NULL)
SV *input
SV *code
SV *opts
PPCODE:
do_parse_buf_each(aTHX_ "tsv_parse_buf_each", input, code, opts, DIALECT_TSV);
XSRETURN_EMPTY;
void
parse_stream(path, code, opts = NULL)
SV *path
SV *code
SV *opts
PPCODE:
do_parse_stream(aTHX_ "parse_stream", path, code, opts, DIALECT_AUTO);
XSRETURN_EMPTY;
void
csv_parse_stream(path, code, opts = NULL)
SV *path
SV *code
SV *opts
PPCODE:
do_parse_stream(aTHX_ "csv_parse_stream", path, code, opts, DIALECT_CSV);
XSRETURN_EMPTY;
void
tsv_parse_stream(path, code, opts = NULL)
SV *path
SV *code
SV *opts
PPCODE:
do_parse_stream(aTHX_ "tsv_parse_stream", path, code, opts, DIALECT_TSV);
XSRETURN_EMPTY;
( run in 0.540 second using v1.01-cache-2.11-cpan-5511b514fd6 )