83 lines
2.1 KiB
Go
83 lines
2.1 KiB
Go
package store
|
|
|
|
import (
|
|
"context"
|
|
)
|
|
|
|
// LogfFunc function used for Logf method
|
|
// type LogfFunc func(ctx context.Context, level Level, msg string, args ...interface{})
|
|
// type Wrapper interface {
|
|
// Logf logs message with needed level
|
|
// Logf(LogfFunc) LogfFunc
|
|
// }
|
|
|
|
// NamespaceStore wrap store with namespace
|
|
type NamespaceStore struct {
|
|
s Store
|
|
ns string
|
|
}
|
|
|
|
var _ Store = &NamespaceStore{}
|
|
|
|
func NewNamespaceStore(s Store, ns string) Store {
|
|
return &NamespaceStore{s: s, ns: ns}
|
|
}
|
|
|
|
func (w *NamespaceStore) Init(opts ...Option) error {
|
|
return w.s.Init(opts...)
|
|
}
|
|
|
|
func (w *NamespaceStore) Connect(ctx context.Context) error {
|
|
return w.s.Connect(ctx)
|
|
}
|
|
|
|
func (w *NamespaceStore) Disconnect(ctx context.Context) error {
|
|
return w.s.Disconnect(ctx)
|
|
}
|
|
|
|
func (w *NamespaceStore) Read(ctx context.Context, key string, val interface{}, opts ...ReadOption) error {
|
|
return w.s.Read(ctx, key, val, append(opts, ReadNamespace(w.ns))...)
|
|
}
|
|
|
|
func (w *NamespaceStore) Write(ctx context.Context, key string, val interface{}, opts ...WriteOption) error {
|
|
return w.s.Write(ctx, key, val, append(opts, WriteNamespace(w.ns))...)
|
|
}
|
|
|
|
func (w *NamespaceStore) Delete(ctx context.Context, key string, opts ...DeleteOption) error {
|
|
return w.s.Delete(ctx, key, append(opts, DeleteNamespace(w.ns))...)
|
|
}
|
|
|
|
func (w *NamespaceStore) Exists(ctx context.Context, key string, opts ...ExistsOption) error {
|
|
return w.s.Exists(ctx, key, append(opts, ExistsNamespace(w.ns))...)
|
|
}
|
|
|
|
func (w *NamespaceStore) List(ctx context.Context, opts ...ListOption) ([]string, error) {
|
|
return w.s.List(ctx, append(opts, ListNamespace(w.ns))...)
|
|
}
|
|
|
|
func (w *NamespaceStore) Options() Options {
|
|
return w.s.Options()
|
|
}
|
|
|
|
func (w *NamespaceStore) Name() string {
|
|
return w.s.Name()
|
|
}
|
|
|
|
func (w *NamespaceStore) String() string {
|
|
return w.s.String()
|
|
}
|
|
|
|
// type NamespaceWrapper struct{}
|
|
|
|
// func NewNamespaceWrapper() Wrapper {
|
|
// return &NamespaceWrapper{}
|
|
// }
|
|
|
|
/*
|
|
func (w *OmitWrapper) Logf(fn LogfFunc) LogfFunc {
|
|
return func(ctx context.Context, level Level, msg string, args ...interface{}) {
|
|
fn(ctx, level, msg, getArgs(args)...)
|
|
}
|
|
}
|
|
*/
|