TYPEMAP pairing_t * PAIRINGT element_t * ELEMENTT mpz_t * MPZ INPUT PAIRINGT if (sv_derived_from($arg, \"Crypt::PBC::Pairing\")) { IV tmp = SvIV((SV*)SvRV($arg)); $var = ($type) tmp; } else croak(\"$var is not of type Crypt::PBC::Pairing\") ELEMENTT if (sv_derived_from($arg, \"Crypt::PBC::Element\")) { IV tmp = SvIV((SV*)SvRV($arg)); $var = ($type) tmp; } else croak(\"$var is not of type Crypt::PBC::Element\") MPZ /* this was cut and pasted directly from Math::BigInt::GMP -- the rest are obvious copies */ if (sv_derived_from($arg, \"Math::BigInt::GMP\")) { IV tmp = SvIV((SV*)SvRV($arg)); $var = ($type) tmp; } else croak(\"$var is not of type Math::BigInt::GMP\") OUTPUT PAIRINGT sv_setref_pv($arg, \"Crypt::PBC::Pairing\", (void*)$var); ELEMENTT sv_setref_pv($arg, \"Crypt::PBC::Element\", (void*)$var); MPZ /* this was cut and pasted directly from Math::BigInt::GMP -- the rest are obvious copies */ sv_setref_pv($arg, \"Math::BigInt::GMP\", (void*)$var);