Beispiel #1
0
func DumpArgInfo(info *C.GIArgInfo) {
	dataIndex := C.g_arg_info_get_closure(info)
	p("data index %d\n", dataIndex)
	destroyNotifyIndex := C.g_arg_info_get_destroy(info)
	p("destroy notify index %d\n", destroyNotifyIndex)
	direction := C.g_arg_info_get_direction(info)
	switch direction {
	case C.GI_DIRECTION_IN:
		p("in arg\n")
	case C.GI_DIRECTION_OUT:
		p("out arg\n")
	case C.GI_DIRECTION_INOUT:
		p("in out arg\n")
	}
	transfer := C.g_arg_info_get_ownership_transfer(info)
	p("transfer %s\n", TransferGetName(transfer))
	scope := C.g_arg_info_get_scope(info)
	p("scope %v\n", scope)
	t := C.g_arg_info_get_type(info)
	DumpTypeInfo(t)
	mayBeNull := C.g_arg_info_may_be_null(info)
	p("may be null %v\n", mayBeNull)
	caller_allocates := C.g_arg_info_is_caller_allocates(info)
	p("caller allocates %v\n", caller_allocates)
	optional := C.g_arg_info_is_optional(info)
	p("optional %v\n", optional)
	isReturnValue := C.g_arg_info_is_return_value(info)
	p("is return value %v\n", isReturnValue)
	onlyUsefulInC := C.g_arg_info_is_skip(info)
	p("is only useful in C %v\n", onlyUsefulInC)
}
Beispiel #2
0
// g_arg_info_is_optional
func (ai *ArgInfo) IsOptional() bool {
	return C.g_arg_info_is_optional((*C.GIArgInfo)(ai.c)) != 0
}
Beispiel #3
0
func (info *GiInfo) IsOptional() bool {
	return GoBool(C.g_arg_info_is_optional((*C.GIArgInfo)(info.ptr)))
}