CXIndex				T_CLANG_INDEX
CXTranslationUnit		T_CLANG_INDEX_TUNIT
CXCursor *			T_CLANG_INDEX_CURSOR
enum CXCursorKind		T_CLANG_INDEX_CURSOR_KIND
CXType *			T_CLANG_INDEX_TYPE
enum CXTypeKind			T_CLANG_INDEX_TYPE_KIND

OUTPUT
T_CLANG_INDEX
	sv_setref_pv($arg, \"Clang::Index\", (void *) $var);
T_CLANG_INDEX_TUNIT
	sv_setref_pv($arg, \"Clang::TUnit\", (void *) $var);
T_CLANG_INDEX_CURSOR
	sv_setref_pv($arg, \"Clang::Cursor\", (void *) $var);
T_CLANG_INDEX_CURSOR_KIND
	sv_setref_iv($arg, \"Clang::CursorKind\", $var);
T_CLANG_INDEX_TYPE
	sv_setref_pv($arg, \"Clang::Type\", (void *) $var);
T_CLANG_INDEX_TYPE_KIND
	sv_setref_iv($arg, \"Clang::TypeKind\", $var);

INPUT
T_CLANG_INDEX
	if (sv_isobject($arg) && sv_derived_from($arg, \"Clang::Index\"))
		$var = INT2PTR($type, SvIV((SV *) SvRV($arg)));
	else
		Perl_croak(aTHX_ \"$var is not of type Clang::Index\");
T_CLANG_INDEX_TUNIT
	if (sv_isobject($arg) && sv_derived_from($arg, \"Clang::TUnit\"))
		$var = INT2PTR($type, SvIV((SV *) SvRV($arg)));
	else
		Perl_croak(aTHX_ \"$var is not of type Clang::TUnit\");
T_CLANG_INDEX_CURSOR
	if (sv_isobject($arg) && sv_derived_from($arg, \"Clang::Cursor\"))
		$var = INT2PTR($type, SvIV((SV *) SvRV($arg)));
	else
		Perl_croak(aTHX_ \"$var is not of type Clang::Cursor\");
T_CLANG_INDEX_CURSOR_KIND
	if (sv_isobject($arg) && sv_derived_from($arg, \"Clang::CursorKind\"))
		$var = SvIV((SV *) SvRV($arg));
	else
		Perl_croak(aTHX_ \"$var is not of type Clang::CursorKind\");
T_CLANG_INDEX_TYPE
	if (sv_isobject($arg) && sv_derived_from($arg, \"Clang::Type\"))
		$var = INT2PTR($type, SvIV((SV *) SvRV($arg)));
	else
		Perl_croak(aTHX_ \"$var is not of type Clang::Type\");
T_CLANG_INDEX_TYPE_KIND
	if (sv_isobject($arg) && sv_derived_from($arg, \"Clang::TypeKind\"))
		$var = SvIV((SV *) SvRV($arg));
	else
		Perl_croak(aTHX_ \"$var is not of type Clang::TypeKind\");
