package peers import ( "go.uber.org/zap" "golang.org/x/sync/singleflight" "go.mau.fi/mautrix-telegram/pkg/gotd/tg" ) // Options is options of Manager type Options struct { Storage Storage Cache Cache Logger *zap.Logger } func (o *Options) setDefaults() { if o.Storage == nil { o.Storage = &InmemoryStorage{} } if o.Cache == nil { o.Cache = NoopCache{} } if o.Logger == nil { o.Logger = zap.NewNop() } } // Build creates new Manager. func (o Options) Build(api *tg.Client) *Manager { o.setDefaults() return &Manager{ api: api, storage: o.Storage, cache: o.Cache, me: new(atomicUser), logger: o.Logger, sg: singleflight.Group{}, } }