func DumpTypeInfo(info *C.GITypeInfo) { isPointer := C.g_type_info_is_pointer(info) p("is pointer %v\n", isPointer) tag := C.g_type_info_get_tag(info) p("tag %s\n", fromGStr(C.g_type_tag_to_string(tag))) if tag&C.GI_TYPE_TAG_INTERFACE > 0 { iface := C.g_type_info_get_interface(info) _ = iface } if tag&C.GI_TYPE_TAG_ARRAY > 0 { length := C.g_type_info_get_array_length(info) p("array length %d\n", length) fixedSize := C.g_type_info_get_array_fixed_size(info) p("array fixed size %d\n", fixedSize) isZeroTerminated := C.g_type_info_is_zero_terminated(info) p("is zero terminated %v\n", isZeroTerminated) arrayType := C.g_type_info_get_array_type(info) switch arrayType { case C.GI_ARRAY_TYPE_C: p("c array\n") case C.GI_ARRAY_TYPE_ARRAY: p("GArray\n") case C.GI_ARRAY_TYPE_PTR_ARRAY: p("GPtrArray\n") case C.GI_ARRAY_TYPE_BYTE_ARRAY: p("GByteArray\n") } } }
func DumpEnumInfo(info *C.GIEnumInfo) { nValues := C.g_enum_info_get_n_values(info) p("%d values\n", nValues) for i := C.gint(0); i < nValues; i++ { valueInfo := C.g_enum_info_get_value(info, i) DumpValueInfo(valueInfo) } nMethods := C.g_enum_info_get_n_methods(info) p("%d methods\n", nMethods) for i := C.gint(0); i < nMethods; i++ { f := C.g_enum_info_get_method(info, i) DumpFunctionInfo(f) } storageType := C.g_enum_info_get_storage_type(info) p("%s\n", fromGStr(C.g_type_tag_to_string(storageType))) errorDomain := fromGStr(C.g_enum_info_get_error_domain(info)) p("error domain %s\n", errorDomain) }
// g_type_tag_to_string func (tt TypeTag) String() string { ret := C.g_type_tag_to_string(C.GITypeTag(tt)) return _GStringToGoString(ret) }
func TypeTagToString(tag TypeTag) string { return GoString(C.g_type_tag_to_string((C.GITypeTag)(tag))) }