Пример #1
0
Файл: dump.go Проект: reusee/ggi
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")
		}
	}
}
Пример #2
0
Файл: dump.go Проект: reusee/ggi
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)
}
Пример #3
0
// g_type_tag_to_string
func (tt TypeTag) String() string {
	ret := C.g_type_tag_to_string(C.GITypeTag(tt))
	return _GStringToGoString(ret)
}
Пример #4
0
func TypeTagToString(tag TypeTag) string {
	return GoString(C.g_type_tag_to_string((C.GITypeTag)(tag)))
}