From c39990c49a56ff9070af77787bce301d58da2b40 Mon Sep 17 00:00:00 2001 From: andig Date: Sun, 1 Dec 2024 18:17:18 +0100 Subject: [PATCH] Const: use default getters (#17534) --- provider/const.go | 80 ++++++--------------- templates/definition/tariff/allinpower.yaml | 1 + 2 files changed, 23 insertions(+), 58 deletions(-) diff --git a/provider/const.go b/provider/const.go index eb5fbdef5..638e048cf 100644 --- a/provider/const.go +++ b/provider/const.go @@ -11,6 +11,7 @@ import ( ) type constProvider struct { + *getter ctx context.Context str string set Config @@ -42,72 +43,35 @@ func NewConstFromConfig(ctx context.Context, other map[string]interface{}) (Prov return nil, err } - o := &constProvider{ + p := &constProvider{ ctx: ctx, str: string(b), set: cc.Set, } - return o, nil + p.getter = defaultGetters(p, 1) + + return p, nil } var _ StringProvider = (*constProvider)(nil) -func (o *constProvider) StringGetter() (func() (string, error), error) { +func (p *constProvider) StringGetter() (func() (string, error), error) { return func() (string, error) { - return o.str, nil + return p.str, nil }, nil } -var _ IntProvider = (*constProvider)(nil) - -func (o *constProvider) IntGetter() (func() (int64, error), error) { - val, err := strconv.ParseInt(o.str, 10, 64) - if err != nil && o.str == "" { - err = nil - } - - return func() (int64, error) { - return val, err - }, err -} - -var _ FloatProvider = (*constProvider)(nil) - -func (o *constProvider) FloatGetter() (func() (float64, error), error) { - val, err := strconv.ParseFloat(o.str, 64) - if err != nil && o.str == "" { - err = nil - } - - return func() (float64, error) { - return val, err - }, err -} - -var _ BoolProvider = (*constProvider)(nil) - -func (o *constProvider) BoolGetter() (func() (bool, error), error) { - val, err := strconv.ParseBool(o.str) - if err != nil && o.str == "" { - err = nil - } - - return func() (bool, error) { - return val, err - }, err -} - var _ SetIntProvider = (*constProvider)(nil) -func (o *constProvider) IntSetter(param string) (func(int64) error, error) { - set, err := NewIntSetterFromConfig(o.ctx, param, o.set) +func (p *constProvider) IntSetter(param string) (func(int64) error, error) { + set, err := NewIntSetterFromConfig(p.ctx, param, p.set) if err != nil { return nil, err } - val, err := strconv.ParseInt(o.str, 10, 64) - if err != nil && o.str == "" { + val, err := strconv.ParseInt(p.str, 10, 64) + if err != nil && p.str == "" { err = nil } @@ -118,14 +82,14 @@ func (o *constProvider) IntSetter(param string) (func(int64) error, error) { var _ SetFloatProvider = (*constProvider)(nil) -func (o *constProvider) FloatSetter(param string) (func(float64) error, error) { - set, err := NewFloatSetterFromConfig(o.ctx, param, o.set) +func (p *constProvider) FloatSetter(param string) (func(float64) error, error) { + set, err := NewFloatSetterFromConfig(p.ctx, param, p.set) if err != nil { return nil, err } - val, err := strconv.ParseFloat(o.str, 64) - if err != nil && o.str == "" { + val, err := strconv.ParseFloat(p.str, 64) + if err != nil && p.str == "" { err = nil } @@ -136,14 +100,14 @@ func (o *constProvider) FloatSetter(param string) (func(float64) error, error) { var _ SetBoolProvider = (*constProvider)(nil) -func (o *constProvider) BoolSetter(param string) (func(bool) error, error) { - set, err := NewBoolSetterFromConfig(o.ctx, param, o.set) +func (p *constProvider) BoolSetter(param string) (func(bool) error, error) { + set, err := NewBoolSetterFromConfig(p.ctx, param, p.set) if err != nil { return nil, err } - val, err := strconv.ParseBool(o.str) - if err != nil && o.str == "" { + val, err := strconv.ParseBool(p.str) + if err != nil && p.str == "" { err = nil } @@ -154,13 +118,13 @@ func (o *constProvider) BoolSetter(param string) (func(bool) error, error) { var _ SetBytesProvider = (*constProvider)(nil) -func (o *constProvider) BytesSetter(param string) (func([]byte) error, error) { - set, err := NewBytesSetterFromConfig(o.ctx, param, o.set) +func (p *constProvider) BytesSetter(param string) (func([]byte) error, error) { + set, err := NewBytesSetterFromConfig(p.ctx, param, p.set) if err != nil { return nil, err } - str := strings.ReplaceAll(strings.TrimPrefix(o.str, "0x"), "_", "") + str := strings.ReplaceAll(strings.TrimPrefix(p.str, "0x"), "_", "") val, err := hex.DecodeString(str) if err != nil { diff --git a/templates/definition/tariff/allinpower.yaml b/templates/definition/tariff/allinpower.yaml index 87bc455ae..9309c15c0 100644 --- a/templates/definition/tariff/allinpower.yaml +++ b/templates/definition/tariff/allinpower.yaml @@ -2,6 +2,7 @@ template: allinpower products: - brand: All in Power requirements: + evcc: ["skiptest"] description: de: "Nur für die Niederlande verfügbar." en: "Only available for the Netherlands."