func NewProvider(opts ...Option) *Provider {
	o := &Options{
		gcCreator: func() GCache { return gcache.New(0).Build() },
		exp:       cacheExpMinutes * time.Minute,
		logger:    log.New("kms/cache"),
	}

	for i := range opts {
		opts[i](o)
	}

	return &Provider{
		cacheList: make(map[string]*cacheStore),
		gcCreator: o.gcCreator,
		exp:       o.exp,
		logger:    o.logger,
	}
}
// NewProvider returns a new storage provider instance based on GCache.
NewProvider returns a new storage provider instance based on GCache.
// NewProvider returns a new storage provider instance based on GCache .
func NewProvider(opts ...Option) *Provider {
	o := &Options{
		gcCreator: func() GCache { return gcache.New(0).Build() },
		exp:       cacheExpMinutes * time.Minute,
		logger:    log.New("kms/cache"),
	}
	for i := range opts {
		opts[i](o)
	}
	return &Provider{
		cacheList: make(map[string]*cacheStore),
		gcCreator: o.gcCreator,
		exp:       o.exp,
		logger:    o.logger,
	}
}
func NewProvider ( opts ... Option ) * Provider { o := & Options { gcCreator : func ( ) GCache { return gcache . New ( 0 ) . Build ( ) } , exp : cacheExpMinutes * time . Minute , logger : log . New ( " " ) , } for i := range opts { opts [ i ] ( o ) } return & Provider { cacheList : make ( map [ string ] * cacheStore ) , gcCreator : o . gcCreator , exp : o . exp , logger : o . logger , } }
NewProvider returns a new storage provider instance based on GCache.
NewProvider returns a new storage provider instance based on GCache .