// Code generated by gobind. DO NOT EDIT.

// Package main is an autogenerated binder stub for package issue10788.
//
//   autogenerated by gobind -lang=go issue10788
package main

/*
#include <stdlib.h>
#include <stdint.h>
#include "seq.h"
#include "issue10788.h"

*/
import "C"

import (
	_seq "golang.org/x/mobile/bind/seq"
	"issue10788"
)

// suppress the error if seq ends up unused
var _ = _seq.FromRefNum

//export proxyissue10788_TestStruct_Value_Set
func proxyissue10788_TestStruct_Value_Set(refnum C.int32_t, v C.nstring) {
	ref := _seq.FromRefNum(int32(refnum))
	_v := decodeString(v)
	ref.Get().(*issue10788.TestStruct).Value = _v
}

//export proxyissue10788_TestStruct_Value_Get
func proxyissue10788_TestStruct_Value_Get(refnum C.int32_t) C.nstring {
	ref := _seq.FromRefNum(int32(refnum))
	v := ref.Get().(*issue10788.TestStruct).Value
	_v := encodeString(v)
	return _v
}

//export new_issue10788_TestStruct
func new_issue10788_TestStruct() C.int32_t {
	return C.int32_t(_seq.ToRefNum(new(issue10788.TestStruct)))
}

//export proxyissue10788_TestInterface_DoSomeWork
func proxyissue10788_TestInterface_DoSomeWork(refnum C.int32_t, param_s C.int32_t) {
	ref := _seq.FromRefNum(int32(refnum))
	v := ref.Get().(issue10788.TestInterface)
	// Must be a Go object
	var _param_s *issue10788.TestStruct
	if _param_s_ref := _seq.FromRefNum(int32(param_s)); _param_s_ref != nil {
		_param_s = _param_s_ref.Get().(*issue10788.TestStruct)
	}
	v.DoSomeWork(_param_s)
}

//export proxyissue10788_TestInterface_MultipleUnnamedParams
func proxyissue10788_TestInterface_MultipleUnnamedParams(refnum C.int32_t, param_p0 C.nint, param_p1 C.nstring, param_日本 C.int64_t) {
	ref := _seq.FromRefNum(int32(refnum))
	v := ref.Get().(issue10788.TestInterface)
	_param_p0 := int(param_p0)
	_param_p1 := decodeString(param_p1)
	_param_日本 := int64(param_日本)
	v.MultipleUnnamedParams(_param_p0, _param_p1, _param_日本)
}

type proxyissue10788_TestInterface _seq.Ref

func (p *proxyissue10788_TestInterface) Bind_proxy_refnum__() int32 {
	return (*_seq.Ref)(p).Bind_IncNum()
}

func (p *proxyissue10788_TestInterface) DoSomeWork(param_s *issue10788.TestStruct) {
	var _param_s C.int32_t = _seq.NullRefNum
	if param_s != nil {
		_param_s = C.int32_t(_seq.ToRefNum(param_s))
	}
	C.cproxyissue10788_TestInterface_DoSomeWork(C.int32_t(p.Bind_proxy_refnum__()), _param_s)
}

func (p *proxyissue10788_TestInterface) MultipleUnnamedParams(param_p0 int, param_p1 string, param_日本 int64) {
	_param_p0 := C.nint(param_p0)
	_param_p1 := encodeString(param_p1)
	_param_日本 := C.int64_t(param_日本)
	C.cproxyissue10788_TestInterface_MultipleUnnamedParams(C.int32_t(p.Bind_proxy_refnum__()), _param_p0, _param_p1, _param_日本)
}
