package main

import "swigtests/director_unroll"

type MyFoo struct{} // From director_unroll.Foo
func (p *MyFoo) Ping() string {
	return "MyFoo::ping()"
}

func main() {
	a := director_unroll.NewDirectorFoo(&MyFoo{})

	b := director_unroll.NewBar()

	b.Set(a)
	c := b.Get()

	if c.Ping() != "MyFoo::ping()" {
		panic(c.Ping())
	}
}
