package cluster import ( "io" "go.uber.org/zap" "go.mau.fi/mautrix-telegram/pkg/gotd/crypto" "go.mau.fi/mautrix-telegram/pkg/gotd/telegram/dcs" "go.mau.fi/mautrix-telegram/pkg/gotd/tg" "go.mau.fi/mautrix-telegram/pkg/gotd/transport" ) // Options of Cluster. type Options struct { // Web denotes to use websocket listener. Web bool // Random is random source. Used to generate RSA keys. // Defaults to rand.Reader. Random io.Reader // Logger is instance of zap.Logger. No logs by default. Logger *zap.Logger // Codec constructor. // Defaults to nil (underlying transport server detects protocol automatically). Protocol dcs.Protocol // Config is an initial cluster config. Config tg.Config // CDNConfig is an initial cluster CDN config. CDNConfig tg.CDNConfig } func (opt *Options) setDefaults() { // It's okay to use zero value Web. if opt.Random == nil { opt.Random = crypto.DefaultRand() } if opt.Logger == nil { opt.Logger = zap.NewNop() } if opt.Protocol == nil { opt.Protocol = transport.Intermediate } // It's okay to use zero value Config. // It's okay to use zero value CDNConfig. }