-
Notifications
You must be signed in to change notification settings - Fork 39
Open
Description
Hi, this fix #26 didn't work with another type of recursive structs
Code
package main
import (
"context"
"flag"
"log"
"net/http"
"os"
"github.com/semrush/zenrpc"
)
type MyModelWithRef struct {
Model *MyModel
}
type MyModel struct {
List []*MyModelWithRef
}
type MyService struct{ zenrpc.Service }
func (s MyService) SomeMethod(ctx context.Context, model MyModel) error {
return nil
}
//go:generate zenrpc
func main() {
addr := flag.String("addr", "localhost:9999", "listen address")
flag.Parse()
rpc := zenrpc.NewServer(zenrpc.Options{ExposeSMD: true})
rpc.Register("service", MyService{})
rpc.Use(zenrpc.Logger(log.New(os.Stderr, "", log.LstdFlags)))
http.Handle("/", rpc)
log.Printf("starting on %s", *addr)
log.Fatal(http.ListenAndServe(*addr, nil))
}Error
Generator version: 1.0.1
Entrypoint: ./
runtime: goroutine stack exceeds 1000000000-byte limit
fatal error: stack overflow