NAME

ExtUtils::Typemaps::PackedVal - Typemap for storing objects as a string reference

VERSION

version 0.002

SYNOPSIS

In typemap

foobar_t    T_PACKEDVAL

In your XS:

foobar_t XS_unpack_foobar_t(SV* sv);
SV* XS_pack_foobar_t(foobar_t foobar);

MODULE = Foo::Bar    PACKAGE = Foo::Bar

foobar_t foobar(foobar_t input)

DESCRIPTION

ExtUtils::Typemaps::PackedVal is a typemap bundle that stores one typemap: T_PACKEDVAL.

For input parameters it's exactly the same as T_PACKED, but for output parameters it does things slightly diferently: it returns the new SV* instead of writing to an SV* argument.

INCLUSION

To use this typemap template you need to include it into your local typemap. The easiest way to do that is to use the typemap script in App::typemap. E.g.

typemap --merge ExtUtils::Typemaps::PackedVal

If you author using Dist::Zilla you can use Dist::Zilla::Plugin::Typemap instead.

Alternatively, you can include it at runtime by adding the following to your XS file:

INCLUDE_COMMAND: $^X -MExtUtils::Typemaps::Cmd -e "print embeddable_typemap('PackedVal')"

That does require adding a build time dependency on this module.

AUTHOR

Leon Timmermans <fawaka@gmail.com>

COPYRIGHT AND LICENSE

This software is copyright (c) 2024 by Leon Timmermans.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.