Goのreflectだけでメソッドを追加する
reflect パッケージでは構造体のフィールド追加はできるけれど、メソッドを新たに追加する関数は見当たらない。なので動的にインターフェイスを満たす型を生成するのは不可能だと思っていたが、ovechkin-dm/go-dynoというパッケージが動的なメソッド追加を実現していた。以下では greeter の型が Greeter となる。
greeter, err := dyno.Dynamic[Greeter](proxyHandler.Handle)これはどうやっているのかというと、本質はproxy/proxy.goの Create にあって、reflect と unsafe を使ってABIを自分で構築しているようだった。
go-dyno はおそらく同作者のovechkin-dm/mockioを作るために用意されているのだろう。