glib/gvariant.go
func (v *Variant) GetInt() (int64, error) {
	t := v.Type().String()
	var i int64
	switch t {
	case "y":
		i = int64(C.g_variant_get_byte(v.native()))
	case "n":
		i = int64(C.g_variant_get_int16(v.native()))
	case "q":
		i = int64(C.g_variant_get_uint16(v.native()))
	case "i":
		i = int64(C.g_variant_get_int32(v.native()))
	case "u":
		i = int64(C.g_variant_get_uint32(v.native()))
	case "x":
		i = int64(C.g_variant_get_int64(v.native()))
	case "t":
		i = int64(C.g_variant_get_uint64(v.native()))
	default:
		return 0, fmt.Errorf("variant type %s not an integer type", t)
	}
	return i, nil
}
func (v *Variant) GetInt() (int64, error) {
	t := v.Type().String()
	var i int64
	switch t {
	case "y":
		i = int64(C.g_variant_get_byte(v.native()))
	case "n":
		i = int64(C.g_variant_get_int16(v.native()))
	case "q":
		i = int64(C.g_variant_get_uint16(v.native()))
	case "i":
		i = int64(C.g_variant_get_int32(v.native()))
	case "u":
		i = int64(C.g_variant_get_uint32(v.native()))
	case "x":
		i = int64(C.g_variant_get_int64(v.native()))
	case "t":
		i = int64(C.g_variant_get_uint64(v.native()))
	default:
		return 0, fmt.Errorf("variant type %s not an integer type", t)
	}
	return i, nil
}
// GetInt returns the int64 value of the variant if it is an integer type, and
// an error otherwise.  It wraps variouns `g_variant_get_*` functions dealing
// with integers of different sizes.