go-micro.dev/v5@v5.12.0/util/pool/options.go (about)

     1  package pool
     2  
     3  import (
     4  	"time"
     5  
     6  	"go-micro.dev/v5/transport"
     7  )
     8  
     9  type Options struct {
    10  	Transport    transport.Transport
    11  	TTL          time.Duration
    12  	CloseTimeout time.Duration
    13  	Size         int
    14  }
    15  
    16  type Option func(*Options)
    17  
    18  func Size(i int) Option {
    19  	return func(o *Options) {
    20  		o.Size = i
    21  	}
    22  }
    23  
    24  func Transport(t transport.Transport) Option {
    25  	return func(o *Options) {
    26  		o.Transport = t
    27  	}
    28  }
    29  
    30  func TTL(t time.Duration) Option {
    31  	return func(o *Options) {
    32  		o.TTL = t
    33  	}
    34  }
    35  
    36  func CloseTimeout(t time.Duration) Option {
    37  	return func(o *Options) {
    38  		o.CloseTimeout = t
    39  	}
    40  }