示例#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
文件: gi.go 项目: bytbox/gogobject
// g_type_info_get_array_length
func (ti *TypeInfo) ArrayLength() int {
	return int(C.g_type_info_get_array_length((*C.GITypeInfo)(ti.c)))
}
示例#3
0
文件: info.go 项目: dradtke/gogi
func (info *GiInfo) GetArrayLength() int {
	return GoInt(C.g_type_info_get_array_length((*C.GITypeInfo)(info.ptr)))
}