79 lines
1.0 KiB
Go
79 lines
1.0 KiB
Go
|
|
package main
|
||
|
|
|
||
|
|
import (
|
||
|
|
wrap "swigtests/go_director_inout"
|
||
|
|
)
|
||
|
|
|
||
|
|
type GoMyClass struct {}
|
||
|
|
|
||
|
|
func (p *GoMyClass) Adjust(m map[string]interface{}) wrap.GoRetStruct {
|
||
|
|
s := ""
|
||
|
|
for k, v := range m {
|
||
|
|
s += k + "," + v.(string) + ";"
|
||
|
|
}
|
||
|
|
return wrap.GoRetStruct{s}
|
||
|
|
}
|
||
|
|
|
||
|
|
func (p *GoMyClass) S1(s string) {
|
||
|
|
if s != "S1" {
|
||
|
|
panic(s)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
func (p *GoMyClass) S2(s *string) {
|
||
|
|
if *s != "S2" {
|
||
|
|
panic(s)
|
||
|
|
}
|
||
|
|
*s = "R2"
|
||
|
|
}
|
||
|
|
|
||
|
|
func (p *GoMyClass) S3(s *string) {
|
||
|
|
if *s != "S3" {
|
||
|
|
panic(s)
|
||
|
|
}
|
||
|
|
*s = "R3"
|
||
|
|
}
|
||
|
|
|
||
|
|
func (p *GoMyClass) S4(s []string) {
|
||
|
|
if s[0] != "T1" {
|
||
|
|
panic(s)
|
||
|
|
}
|
||
|
|
if s[1] != "T2" {
|
||
|
|
panic(s)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
func main() {
|
||
|
|
a := wrap.NewDirectorMyClass(&GoMyClass{})
|
||
|
|
m := map[string]interface{}{
|
||
|
|
"first": "second",
|
||
|
|
}
|
||
|
|
s := a.Adjust(m)
|
||
|
|
if s.Str != "first,second;" {
|
||
|
|
panic(s)
|
||
|
|
}
|
||
|
|
|
||
|
|
a.S1("S1")
|
||
|
|
str := "S2"
|
||
|
|
a.S2(&str)
|
||
|
|
if str != "R2" {
|
||
|
|
panic(str)
|
||
|
|
}
|
||
|
|
str = "S3"
|
||
|
|
a.S3(&str)
|
||
|
|
if str != "R3" {
|
||
|
|
panic(str)
|
||
|
|
}
|
||
|
|
|
||
|
|
a.CallS4([]string{ "T1", "T2" })
|
||
|
|
|
||
|
|
a.S5(&str)
|
||
|
|
a.S5(nil)
|
||
|
|
|
||
|
|
a = wrap.NewDirectorMyClass(nil)
|
||
|
|
s = a.Adjust(m)
|
||
|
|
if s.Str != `{"first":"second"}` {
|
||
|
|
panic(s.Str)
|
||
|
|
}
|
||
|
|
}
|