2022-10-07 02:54:09 +00:00
|
|
|
package server
|
|
|
|
|
|
|
|
import "time"
|
|
|
|
|
|
|
|
type Option = func(s *Server) error
|
|
|
|
|
2022-10-30 02:15:35 +00:00
|
|
|
func WithMiddleware(mw ...Middleware) Option {
|
|
|
|
return func(s *Server) error {
|
|
|
|
s.mw = append(s.mw, mw...)
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-10-07 02:54:09 +00:00
|
|
|
func WithWorker(w Worker) Option {
|
|
|
|
return func(s *Server) error {
|
|
|
|
s.Worker = w
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func WithHost(host string) Option {
|
|
|
|
return func(s *Server) error {
|
|
|
|
s.Host = host
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func WithPort(port string) Option {
|
|
|
|
return func(s *Server) error {
|
|
|
|
s.Port = port
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func WithReadTimeout(seconds int) Option {
|
|
|
|
return func(s *Server) error {
|
|
|
|
s.readTimeout = time.Duration(seconds) * time.Second
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func WithWriteTimeout(seconds int) Option {
|
|
|
|
return func(s *Server) error {
|
|
|
|
s.writeTimeout = time.Duration(seconds) * time.Second
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func WithIdleTimeout(seconds int) Option {
|
|
|
|
return func(s *Server) error {
|
|
|
|
s.idleTimeout = time.Duration(seconds) * time.Second
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
}
|