implement some helper functions
[gitmo/Package-Stash-XS.git] / typemap
diff --git a/typemap b/typemap
new file mode 100644 (file)
index 0000000..3ea935e
--- /dev/null
+++ b/typemap
@@ -0,0 +1,17 @@
+TYPEMAP
+varspec_t      T_VARSPEC
+vartype_t      T_VARTYPE
+
+INPUT
+T_VARSPEC
+    if (SvPOK($arg))
+        _deconstruct_variable_name(SvPV_nolen($arg), &$var);
+    else if (SvROK($arg) && SvTYPE(SvRV($arg)) == SVt_PVHV)
+        _deconstruct_variable_hash((HV*)SvRV($arg), &$var);
+    else
+        croak(\"varspec must be a string or a hashref\");
+
+T_VARTYPE
+    if (!SvPOK($arg))
+        croak(\"vartype must be a string\");
+    $var = string_to_vartype(SvPV_nolen($arg));