func (config *Config) WithStreamInterceptor(intes ...grpc.StreamServerInterceptor) *Config {
	if config.streamInterceptors == nil {
		config.streamInterceptors = make([]grpc.StreamServerInterceptor, 0)
	}
	config.streamInterceptors = append(config.streamInterceptors, intes...)
	return config
}
WithStreamInterceptor inject stream interceptors to server option
package rpc
import (
	"context"
	"fmt"
	"net"
	"github.com/abulo/ratel/v2/logger"
	"github.com/abulo/ratel/v2/server"
	"google.golang.org/grpc"
)
type Config struct {
	Host    string
	Port    int
	Network string  
	serverOptions      []grpc.ServerOption
	streamInterceptors []grpc.StreamServerInterceptor
	unaryInterceptors  []grpc.UnaryServerInterceptor
	Name string
}
type Server struct {
	*grpc.Server
	listener   net.Listener
	config     *Config
	serverInfo *server.ServiceInfo
}
func (config *Config) Build() *Server {
	newServer := grpc.NewServer(config.serverOptions...)
	listener, err := net.Listen(config.Network, config.Address())
	if err != nil {
		logger.Logger.Info("new grpc server err", config.Address(), err)
	}
	config.Port = listener.Addr().(*net.TCPAddr).Port
	info := server.ApplyOptions(
		server.WithScheme("grpc"),
		server.WithAddress(config.Address()),
		server.WithName(config.Name),
	)
	return &Server{
		Server:     newServer,
		listener:   listener,
		config:     config,
		serverInfo: &info,
	}
}
func (s *Server) Serve() error {
	err := s.Server.Serve(s.listener)
	return err
}
func (s *Server) Stop() error {
	s.Server.Stop()
	return nil
}
func (s *Server) GracefulStop(ctx context.Context) error {
	s.Server.GracefulStop()
	return nil
}
func (s *Server) Shutdown() error {
	s.Server.GracefulStop()
	return nil
}
func (s *Server) Info() *server.ServiceInfo {
	info := server.ApplyOptions(
		server.WithScheme("grpc"),
		server.WithAddress(s.config.Address()),
		server.WithName(s.config.Name),
	)
	return &info
}
func (config *Config) WithServerOption(options ...grpc.ServerOption) *Config {
	if config.serverOptions == nil {
		config.serverOptions = make([]grpc.ServerOption, 0)
	}
	config.serverOptions = append(config.serverOptions, options...)
	return config
}