| 114 | } |
| 115 | |
| 116 | func NewEncryptionCache(ctx context.Context, logger slog.Logger, fetcher Fetcher, |
| 117 | feature codersdk.CryptoKeyFeature, opts ...func(*cache), |
| 118 | ) (EncryptionKeycache, error) { |
| 119 | if !isEncryptionKeyFeature(feature) { |
| 120 | return nil, xerrors.Errorf("invalid feature: %s", feature) |
| 121 | } |
| 122 | logger = logger.Named(fmt.Sprintf("%s_encryption_keycache", feature)) |
| 123 | return newCache(ctx, logger, fetcher, feature, opts...), nil |
| 124 | } |
| 125 | |
| 126 | func newCache(ctx context.Context, logger slog.Logger, fetcher Fetcher, feature codersdk.CryptoKeyFeature, opts ...func(*cache)) *cache { |
| 127 | cache := &cache{ |