Files
config/provider/memory/def.go
andrey f9a0411192
All checks were successful
Go Action / goaction (push) Successful in 29s
def (#12)
Reviewed-on: #12
2025-12-26 14:55:42 +03:00

45 lines
771 B
Go

package memory
import (
"context"
"fmt"
"gitoa.ru/go-4devs/config"
"gitoa.ru/go-4devs/config/definition/option"
)
const NameDefault = "default"
var _ config.BindProvider = (*Default)(nil)
type Default struct {
data Map
name string
}
func (a *Default) Value(ctx context.Context, key ...string) (config.Value, error) {
if v, err := a.data.Value(ctx, key...); err == nil {
return v, nil
}
return nil, fmt.Errorf("%w", config.ErrNotFound)
}
func (a *Default) Bind(_ context.Context, def config.Variables) error {
for _, opt := range def.Variables() {
if data, ok := option.DataDefaut(opt); ok {
a.data.SetOption(data, opt.Key()...)
}
}
return nil
}
func (a *Default) Name() string {
if a.name != "" {
return a.name
}
return NameDefault
}