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.