TYPEMAP
DNS__Unbound__Context*  DNS_UNBOUND_T

INPUT
DNS_UNBOUND_T
	if (SvROK($arg) && sv_derived_from($arg, \"${Package}\")) {
	    IV tmp = SvIV((SV*)SvRV($arg));
	    $var = INT2PTR($type,tmp);
	}
	else {
		const char* refstr = SvROK($arg) ? \"\" : SvOK($arg) ? \"scalar \" : \"undef\";
	    Perl_croak_nocontext(\"%s: Expected %s to be of type %s; got %s%\" SVf \" instead\",
			${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]},
			\"$var\", \"${Package}\",
			refstr, $arg
		);
	}

OUTPUT
DNS_UNBOUND_T
	sv_setref_pv($arg, \"${Package}\", (void*)$var);
