Deep-Encode

 view release on metacpan or  search on metacpan

Encode.xs  view on Meta::CPAN

    }
}


MODULE = Deep::Encode		PACKAGE = Deep::Encode		


void 
deep_utf8_decode( SV *data )
    PROTOTYPE: $
    PPCODE:
	struct pp_args a_args;
	a_args.noskip  = 0;
	a_args.type = DEEP_CALL_INPLACE ;
	a_args.str_pos = 1;
	a_args.argc    = 2;
	a_args.argv[0] = (SV *) get_cv( "utf8::decode", 0); 
	if ( ! a_args.argv[0] )
	    croak ("Fail locate &utf8::decode");
	deep_walk_imp( data, & a_args );        

void
deep_utf8_encode( SV *data )
    PROTOTYPE: $
    PPCODE:
	struct pp_args a_args;
	a_args.noskip  = 0;
	a_args.type = DEEP_CALL_INPLACE ;
	
	a_args.str_pos = 1;
	a_args.argc    = 2;
	a_args.argv[0] = (SV *) get_cv( "utf8::encode", 0); 
	if ( ! a_args.argv[0] )
	    croak ("Fail locate &utf8::encode");
	deep_walk_imp( data, & a_args );        

void
deep_from_to_00( SV *data, SV *from, SV* to )
    PROTOTYPE: $$$
    PPCODE:
	struct pp_args a_args;
	a_args.noskip  = 0;
	a_args.type = DEEP_FUNCTION;
	a_args.callback = from_to_cb_00;
	a_args.argv[0] = find_encoding( &a_args, from );
	a_args.argv[1] = find_encoding( &a_args, to );
	deep_walk_imp( data, & a_args );        

void
deep_from_to( SV *data, SV *from, SV* to )
    PROTOTYPE: $$$
    PPCODE:
	struct pp_args a_args;
	a_args.noskip  = 0;
	a_args.type = DEEP_FUNCTION;
	a_args.fastinit = 0;
	a_args.callback = from_to_cb;
	a_args.argv[0] = find_encoding( &a_args, from );
	a_args.argv[1] = find_encoding( &a_args, to );
	deep_walk_imp( data, & a_args );        

void
deep_encode_00( SV *data, SV* encoding )
    PROTOTYPE: $$
    PPCODE:
	struct pp_args a_args;
	a_args.type = DEEP_METHOD_TEMP;
	a_args.fastinit = -1;
	a_args.method  = "encode";
	a_args.noskip  = 0;
	a_args.str_pos = 1;
	a_args.argc    = 2;
	a_args.argv[0] = find_encoding( & a_args, encoding );
	a_args.argv[1] = 0;
	deep_walk_imp( data, & a_args );        


void
deep_decode_00( SV *data, SV* encoding )
    PROTOTYPE: $$
    PPCODE:
	struct pp_args a_args;
	a_args.type = DEEP_METHOD_TEMP;
	a_args.fastinit = -1;
	a_args.method   = "decode";
	a_args.noskip   = 0;
	a_args.str_pos  = 1;
	a_args.argc     = 2;
	a_args.argv[0] = find_encoding( & a_args, encoding );
	a_args.argv[1] = 0;
	deep_walk_imp( data, & a_args );        



void
deep_encode( SV *data, SV* encoding )
    PROTOTYPE: $$
    PPCODE:
	struct pp_args a_args;
	a_args.type = DEEP_METHOD_TEMP;
	a_args.method  = "encode";
	a_args.noskip  = 0;
	a_args.str_pos = 1;
	a_args.fastinit = 0;
	a_args.argc    = 2;
	a_args.argv[0] = find_encoding( & a_args, encoding );
	a_args.argv[1] = 0;
	deep_walk_imp( data, & a_args );        


void
deep_decode( SV *data, SV* encoding )
    PROTOTYPE: $$
    PPCODE:
	struct pp_args a_args;
	a_args.type = DEEP_METHOD_TEMP;
	a_args.method   = "decode";
	a_args.noskip   = 0;
	a_args.str_pos  = 1;
	a_args.argc     = 2;
	a_args.fastinit = 0;
	a_args.argv[0] = find_encoding( & a_args, encoding );
	a_args.argv[1] = 0;
	deep_walk_imp( data, & a_args );        

void
deep_utf8_off( SV *data)
    PROTOTYPE: $
    PPCODE:
	struct pp_args a_args;
        a_args.noskip  = 1;
        a_args.type = DEEP_FUNCTION;
        a_args.callback = utf8_off_cb;
	a_args.counter = 0;
        deep_walk_imp( data, & a_args );
	mXPUSHi( a_args.counter );

void
deep_utf8_on( SV *data)
    PROTOTYPE: $
    PPCODE:
	struct pp_args a_args;
        a_args.noskip  = 1;
        a_args.type = DEEP_FUNCTION;
        a_args.callback = utf8_on_cb;
	a_args.counter = 0;
        deep_walk_imp( data, & a_args );
	mXPUSHi( a_args.counter );

void
deep_utf8_downgrade( SV *data)
    PROTOTYPE: $
    PPCODE:
	struct pp_args a_args;
        a_args.noskip  = 1;
        a_args.type = DEEP_FUNCTION;
        a_args.callback = utf8_downgrade_cb;
	a_args.counter = 0;
        deep_walk_imp( data, & a_args );
	mXPUSHi( a_args.counter );

void
deep_utf8_upgrade( SV *data)
    PROTOTYPE: $
    PPCODE:
	struct pp_args a_args;
        a_args.noskip  = 1;
        a_args.type = DEEP_FUNCTION;
        a_args.callback = utf8_upgrade_cb;
	a_args.counter = 0;
        deep_walk_imp( data, & a_args );
	mXPUSHi( a_args.counter );

void
deep_utf8_check( SV *data)
    PROTOTYPE: $
    PPCODE:
	struct pp_args a_args;
        a_args.noskip  = 1;
        a_args.type = DEEP_FUNCTION;
        a_args.callback = utf8_check_encoding_cb;
	a_args.counter = 1;
        deep_walk_imp( data, &a_args );
	mXPUSHi( a_args.counter );

void 
deep_str_clone( SV *data )
    PROTOTYPE: $
    PPCODE:
    struct pp_args a_args;
    SV * R;
    a_args.noskip = 0;
    R = deep_clone_imp( data, &a_args );
    if ( R ){
	sv_2mortal( R );
	XPUSHs( R );
    }
    else {
	XPUSHs( data );



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