Const: use default getters (#17534)

This commit is contained in:
andig 2024-12-01 18:17:18 +01:00 • committed by GitHub
parent 3b58b49429
commit c39990c49a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 23 additions and 58 deletions

View file

@ -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 {

View file

@ -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."