package grpc

import (
	"time"

	"google.golang.org/grpc"
)

const defaultRWTimeout = 1 * time.Minute

type cfg struct {
	con       *grpc.ClientConn
	rwTimeout time.Duration
}

func defaultCfg() *cfg {
	return &cfg{
		rwTimeout: defaultRWTimeout,
	}
}

// WithClientConnection returns option to set gRPC connection
// to the remote server.
func WithClientConnection(con *grpc.ClientConn) Option {
	return func(c *cfg) {
		c.con = con
	}
}

// WithRWTimeout returns option to specify rwTimeout
// for reading and writing single gRPC message.
func WithRWTimeout(t time.Duration) Option {
	return func(c *cfg) {
		c.rwTimeout = t
	}
}