evcc-io/charger/warp-ws_decorators.go
2026-02-04 11:51:45 +01:00

1247 lines
32 KiB
Go

package charger
// Code generated by github.com/evcc-io/evcc/cmd/tools/decorate.go. DO NOT EDIT.
import (
"github.com/evcc-io/evcc/api"
)
func decorateWarpWS(base *WarpWS, meter func() (float64, error), meterEnergy func() (float64, error), phaseCurrents func() (float64, float64, float64, error), phaseVoltages func() (float64, float64, float64, error), identifier func() (string, error), phaseSwitcher func(int) error, phaseGetter func() (int, error)) api.Charger {
switch {
case identifier == nil && meter == nil && phaseSwitcher == nil:
return base
case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages == nil:
return &struct {
*WarpWS
api.Meter
}{
WarpWS: base,
Meter: &decorateWarpWSMeterImpl{
meter: meter,
},
}
case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages == nil:
return &struct {
*WarpWS
api.Meter
api.MeterEnergy
}{
WarpWS: base,
Meter: &decorateWarpWSMeterImpl{
meter: meter,
},
MeterEnergy: &decorateWarpWSMeterEnergyImpl{
meterEnergy: meterEnergy,
},
}
case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages == nil:
return &struct {
*WarpWS
api.Meter
api.PhaseCurrents
}{
WarpWS: base,
Meter: &decorateWarpWSMeterImpl{
meter: meter,
},
PhaseCurrents: &decorateWarpWSPhaseCurrentsImpl{
phaseCurrents: phaseCurrents,
},
}
case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages == nil:
return &struct {
*WarpWS
api.Meter
api.MeterEnergy
api.PhaseCurrents
}{
WarpWS: base,
Meter: &decorateWarpWSMeterImpl{
meter: meter,
},
MeterEnergy: &decorateWarpWSMeterEnergyImpl{
meterEnergy: meterEnergy,
},
PhaseCurrents: &decorateWarpWSPhaseCurrentsImpl{
phaseCurrents: phaseCurrents,
},
}
case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages != nil:
return &struct {
*WarpWS
api.Meter
api.PhaseVoltages
}{
WarpWS: base,
Meter: &decorateWarpWSMeterImpl{
meter: meter,
},
PhaseVoltages: &decorateWarpWSPhaseVoltagesImpl{
phaseVoltages: phaseVoltages,
},
}
case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages != nil:
return &struct {
*WarpWS
api.Meter
api.MeterEnergy
api.PhaseVoltages
}{
WarpWS: base,
Meter: &decorateWarpWSMeterImpl{
meter: meter,
},
MeterEnergy: &decorateWarpWSMeterEnergyImpl{
meterEnergy: meterEnergy,
},
PhaseVoltages: &decorateWarpWSPhaseVoltagesImpl{
phaseVoltages: phaseVoltages,
},
}
case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages != nil:
return &struct {
*WarpWS
api.Meter
api.PhaseCurrents
api.PhaseVoltages
}{
WarpWS: base,
Meter: &decorateWarpWSMeterImpl{
meter: meter,
},
PhaseCurrents: &decorateWarpWSPhaseCurrentsImpl{
phaseCurrents: phaseCurrents,
},
PhaseVoltages: &decorateWarpWSPhaseVoltagesImpl{
phaseVoltages: phaseVoltages,
},
}
case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages != nil:
return &struct {
*WarpWS
api.Meter
api.MeterEnergy
api.PhaseCurrents
api.PhaseVoltages
}{
WarpWS: base,
Meter: &decorateWarpWSMeterImpl{
meter: meter,
},
MeterEnergy: &decorateWarpWSMeterEnergyImpl{
meterEnergy: meterEnergy,
},
PhaseCurrents: &decorateWarpWSPhaseCurrentsImpl{
phaseCurrents: phaseCurrents,
},
PhaseVoltages: &decorateWarpWSPhaseVoltagesImpl{
phaseVoltages: phaseVoltages,
},
}
case identifier != nil && meter == nil && phaseSwitcher == nil:
return &struct {
*WarpWS
api.Identifier
}{
WarpWS: base,
Identifier: &decorateWarpWSIdentifierImpl{
identifier: identifier,
},
}
case identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages == nil:
return &struct {
*WarpWS
api.Identifier
api.Meter
}{
WarpWS: base,
Identifier: &decorateWarpWSIdentifierImpl{
identifier: identifier,
},
Meter: &decorateWarpWSMeterImpl{
meter: meter,
},
}
case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages == nil:
return &struct {
*WarpWS
api.Identifier
api.Meter
api.MeterEnergy
}{
WarpWS: base,
Identifier: &decorateWarpWSIdentifierImpl{
identifier: identifier,
},
Meter: &decorateWarpWSMeterImpl{
meter: meter,
},
MeterEnergy: &decorateWarpWSMeterEnergyImpl{
meterEnergy: meterEnergy,
},
}
case identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages == nil:
return &struct {
*WarpWS
api.Identifier
api.Meter
api.PhaseCurrents
}{
WarpWS: base,
Identifier: &decorateWarpWSIdentifierImpl{
identifier: identifier,
},
Meter: &decorateWarpWSMeterImpl{
meter: meter,
},
PhaseCurrents: &decorateWarpWSPhaseCurrentsImpl{
phaseCurrents: phaseCurrents,
},
}
case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages == nil:
return &struct {
*WarpWS
api.Identifier
api.Meter
api.MeterEnergy
api.PhaseCurrents
}{
WarpWS: base,
Identifier: &decorateWarpWSIdentifierImpl{
identifier: identifier,
},
Meter: &decorateWarpWSMeterImpl{
meter: meter,
},
MeterEnergy: &decorateWarpWSMeterEnergyImpl{
meterEnergy: meterEnergy,
},
PhaseCurrents: &decorateWarpWSPhaseCurrentsImpl{
phaseCurrents: phaseCurrents,
},
}
case identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages != nil:
return &struct {
*WarpWS
api.Identifier
api.Meter
api.PhaseVoltages
}{
WarpWS: base,
Identifier: &decorateWarpWSIdentifierImpl{
identifier: identifier,
},
Meter: &decorateWarpWSMeterImpl{
meter: meter,
},
PhaseVoltages: &decorateWarpWSPhaseVoltagesImpl{
phaseVoltages: phaseVoltages,
},
}
case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages != nil:
return &struct {
*WarpWS
api.Identifier
api.Meter
api.MeterEnergy
api.PhaseVoltages
}{
WarpWS: base,
Identifier: &decorateWarpWSIdentifierImpl{
identifier: identifier,
},
Meter: &decorateWarpWSMeterImpl{
meter: meter,
},
MeterEnergy: &decorateWarpWSMeterEnergyImpl{
meterEnergy: meterEnergy,
},
PhaseVoltages: &decorateWarpWSPhaseVoltagesImpl{
phaseVoltages: phaseVoltages,
},
}
case identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages != nil:
return &struct {
*WarpWS
api.Identifier
api.Meter
api.PhaseCurrents
api.PhaseVoltages
}{
WarpWS: base,
Identifier: &decorateWarpWSIdentifierImpl{
identifier: identifier,
},
Meter: &decorateWarpWSMeterImpl{
meter: meter,
},
PhaseCurrents: &decorateWarpWSPhaseCurrentsImpl{
phaseCurrents: phaseCurrents,
},
PhaseVoltages: &decorateWarpWSPhaseVoltagesImpl{
phaseVoltages: phaseVoltages,
},
}
case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages != nil:
return &struct {
*WarpWS
api.Identifier
api.Meter
api.MeterEnergy
api.PhaseCurrents
api.PhaseVoltages
}{
WarpWS: base,
Identifier: &decorateWarpWSIdentifierImpl{
identifier: identifier,
},
Meter: &decorateWarpWSMeterImpl{
meter: meter,
},
MeterEnergy: &decorateWarpWSMeterEnergyImpl{
meterEnergy: meterEnergy,
},
PhaseCurrents: &decorateWarpWSPhaseCurrentsImpl{
phaseCurrents: phaseCurrents,
},
PhaseVoltages: &decorateWarpWSPhaseVoltagesImpl{
phaseVoltages: phaseVoltages,
},
}
case identifier == nil && meter == nil && phaseGetter == nil && phaseSwitcher != nil:
return &struct {
*WarpWS
api.PhaseSwitcher
}{
WarpWS: base,
PhaseSwitcher: &decorateWarpWSPhaseSwitcherImpl{
phaseSwitcher: phaseSwitcher,
},
}
case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher != nil && phaseVoltages == nil:
return &struct {
*WarpWS
api.Meter
api.PhaseSwitcher
}{
WarpWS: base,
Meter: &decorateWarpWSMeterImpl{
meter: meter,
},
PhaseSwitcher: &decorateWarpWSPhaseSwitcherImpl{
phaseSwitcher: phaseSwitcher,
},
}
case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher != nil && phaseVoltages == nil:
return &struct {
*WarpWS
api.Meter
api.MeterEnergy
api.PhaseSwitcher
}{
WarpWS: base,
Meter: &decorateWarpWSMeterImpl{
meter: meter,
},
MeterEnergy: &decorateWarpWSMeterEnergyImpl{
meterEnergy: meterEnergy,
},
PhaseSwitcher: &decorateWarpWSPhaseSwitcherImpl{
phaseSwitcher: phaseSwitcher,
},
}
case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher != nil && phaseVoltages == nil:
return &struct {
*WarpWS
api.Meter
api.PhaseCurrents
api.PhaseSwitcher
}{
WarpWS: base,
Meter: &decorateWarpWSMeterImpl{
meter: meter,
},
PhaseCurrents: &decorateWarpWSPhaseCurrentsImpl{
phaseCurrents: phaseCurrents,
},
PhaseSwitcher: &decorateWarpWSPhaseSwitcherImpl{
phaseSwitcher: phaseSwitcher,
},
}
case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher != nil && phaseVoltages == nil:
return &struct {
*WarpWS
api.Meter
api.MeterEnergy
api.PhaseCurrents
api.PhaseSwitcher
}{
WarpWS: base,
Meter: &decorateWarpWSMeterImpl{
meter: meter,
},
MeterEnergy: &decorateWarpWSMeterEnergyImpl{
meterEnergy: meterEnergy,
},
PhaseCurrents: &decorateWarpWSPhaseCurrentsImpl{
phaseCurrents: phaseCurrents,
},
PhaseSwitcher: &decorateWarpWSPhaseSwitcherImpl{
phaseSwitcher: phaseSwitcher,
},
}
case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher != nil && phaseVoltages != nil:
return &struct {
*WarpWS
api.Meter
api.PhaseSwitcher
api.PhaseVoltages
}{
WarpWS: base,
Meter: &decorateWarpWSMeterImpl{
meter: meter,
},
PhaseSwitcher: &decorateWarpWSPhaseSwitcherImpl{
phaseSwitcher: phaseSwitcher,
},
PhaseVoltages: &decorateWarpWSPhaseVoltagesImpl{
phaseVoltages: phaseVoltages,
},
}
case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher != nil && phaseVoltages != nil:
return &struct {
*WarpWS
api.Meter
api.MeterEnergy
api.PhaseSwitcher
api.PhaseVoltages
}{
WarpWS: base,
Meter: &decorateWarpWSMeterImpl{
meter: meter,
},
MeterEnergy: &decorateWarpWSMeterEnergyImpl{
meterEnergy: meterEnergy,
},
PhaseSwitcher: &decorateWarpWSPhaseSwitcherImpl{
phaseSwitcher: phaseSwitcher,
},
PhaseVoltages: &decorateWarpWSPhaseVoltagesImpl{
phaseVoltages: phaseVoltages,
},
}
case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher != nil && phaseVoltages != nil:
return &struct {
*WarpWS
api.Meter
api.PhaseCurrents
api.PhaseSwitcher
api.PhaseVoltages
}{
WarpWS: base,
Meter: &decorateWarpWSMeterImpl{
meter: meter,
},
PhaseCurrents: &decorateWarpWSPhaseCurrentsImpl{
phaseCurrents: phaseCurrents,
},
PhaseSwitcher: &decorateWarpWSPhaseSwitcherImpl{
phaseSwitcher: phaseSwitcher,
},
PhaseVoltages: &decorateWarpWSPhaseVoltagesImpl{
phaseVoltages: phaseVoltages,
},
}
case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher != nil && phaseVoltages != nil:
return &struct {
*WarpWS
api.Meter
api.MeterEnergy
api.PhaseCurrents
api.PhaseSwitcher
api.PhaseVoltages
}{
WarpWS: base,
Meter: &decorateWarpWSMeterImpl{
meter: meter,
},
MeterEnergy: &decorateWarpWSMeterEnergyImpl{
meterEnergy: meterEnergy,
},
PhaseCurrents: &decorateWarpWSPhaseCurrentsImpl{
phaseCurrents: phaseCurrents,
},
PhaseSwitcher: &decorateWarpWSPhaseSwitcherImpl{
phaseSwitcher: phaseSwitcher,
},
PhaseVoltages: &decorateWarpWSPhaseVoltagesImpl{
phaseVoltages: phaseVoltages,
},
}
case identifier != nil && meter == nil && phaseGetter == nil && phaseSwitcher != nil:
return &struct {
*WarpWS
api.Identifier
api.PhaseSwitcher
}{
WarpWS: base,
Identifier: &decorateWarpWSIdentifierImpl{
identifier: identifier,
},
PhaseSwitcher: &decorateWarpWSPhaseSwitcherImpl{
phaseSwitcher: phaseSwitcher,
},
}
case identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher != nil && phaseVoltages == nil:
return &struct {
*WarpWS
api.Identifier
api.Meter
api.PhaseSwitcher
}{
WarpWS: base,
Identifier: &decorateWarpWSIdentifierImpl{
identifier: identifier,
},
Meter: &decorateWarpWSMeterImpl{
meter: meter,
},
PhaseSwitcher: &decorateWarpWSPhaseSwitcherImpl{
phaseSwitcher: phaseSwitcher,
},
}
case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher != nil && phaseVoltages == nil:
return &struct {
*WarpWS
api.Identifier
api.Meter
api.MeterEnergy
api.PhaseSwitcher
}{
WarpWS: base,
Identifier: &decorateWarpWSIdentifierImpl{
identifier: identifier,
},
Meter: &decorateWarpWSMeterImpl{
meter: meter,
},
MeterEnergy: &decorateWarpWSMeterEnergyImpl{
meterEnergy: meterEnergy,
},
PhaseSwitcher: &decorateWarpWSPhaseSwitcherImpl{
phaseSwitcher: phaseSwitcher,
},
}
case identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher != nil && phaseVoltages == nil:
return &struct {
*WarpWS
api.Identifier
api.Meter
api.PhaseCurrents
api.PhaseSwitcher
}{
WarpWS: base,
Identifier: &decorateWarpWSIdentifierImpl{
identifier: identifier,
},
Meter: &decorateWarpWSMeterImpl{
meter: meter,
},
PhaseCurrents: &decorateWarpWSPhaseCurrentsImpl{
phaseCurrents: phaseCurrents,
},
PhaseSwitcher: &decorateWarpWSPhaseSwitcherImpl{
phaseSwitcher: phaseSwitcher,
},
}
case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher != nil && phaseVoltages == nil:
return &struct {
*WarpWS
api.Identifier
api.Meter
api.MeterEnergy
api.PhaseCurrents
api.PhaseSwitcher
}{
WarpWS: base,
Identifier: &decorateWarpWSIdentifierImpl{
identifier: identifier,
},
Meter: &decorateWarpWSMeterImpl{
meter: meter,
},
MeterEnergy: &decorateWarpWSMeterEnergyImpl{
meterEnergy: meterEnergy,
},
PhaseCurrents: &decorateWarpWSPhaseCurrentsImpl{
phaseCurrents: phaseCurrents,
},
PhaseSwitcher: &decorateWarpWSPhaseSwitcherImpl{
phaseSwitcher: phaseSwitcher,
},
}
case identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher != nil && phaseVoltages != nil:
return &struct {
*WarpWS
api.Identifier
api.Meter
api.PhaseSwitcher
api.PhaseVoltages
}{
WarpWS: base,
Identifier: &decorateWarpWSIdentifierImpl{
identifier: identifier,
},
Meter: &decorateWarpWSMeterImpl{
meter: meter,
},
PhaseSwitcher: &decorateWarpWSPhaseSwitcherImpl{
phaseSwitcher: phaseSwitcher,
},
PhaseVoltages: &decorateWarpWSPhaseVoltagesImpl{
phaseVoltages: phaseVoltages,
},
}
case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher != nil && phaseVoltages != nil:
return &struct {
*WarpWS
api.Identifier
api.Meter
api.MeterEnergy
api.PhaseSwitcher
api.PhaseVoltages
}{
WarpWS: base,
Identifier: &decorateWarpWSIdentifierImpl{
identifier: identifier,
},
Meter: &decorateWarpWSMeterImpl{
meter: meter,
},
MeterEnergy: &decorateWarpWSMeterEnergyImpl{
meterEnergy: meterEnergy,
},
PhaseSwitcher: &decorateWarpWSPhaseSwitcherImpl{
phaseSwitcher: phaseSwitcher,
},
PhaseVoltages: &decorateWarpWSPhaseVoltagesImpl{
phaseVoltages: phaseVoltages,
},
}
case identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher != nil && phaseVoltages != nil:
return &struct {
*WarpWS
api.Identifier
api.Meter
api.PhaseCurrents
api.PhaseSwitcher
api.PhaseVoltages
}{
WarpWS: base,
Identifier: &decorateWarpWSIdentifierImpl{
identifier: identifier,
},
Meter: &decorateWarpWSMeterImpl{
meter: meter,
},
PhaseCurrents: &decorateWarpWSPhaseCurrentsImpl{
phaseCurrents: phaseCurrents,
},
PhaseSwitcher: &decorateWarpWSPhaseSwitcherImpl{
phaseSwitcher: phaseSwitcher,
},
PhaseVoltages: &decorateWarpWSPhaseVoltagesImpl{
phaseVoltages: phaseVoltages,
},
}
case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher != nil && phaseVoltages != nil:
return &struct {
*WarpWS
api.Identifier
api.Meter
api.MeterEnergy
api.PhaseCurrents
api.PhaseSwitcher
api.PhaseVoltages
}{
WarpWS: base,
Identifier: &decorateWarpWSIdentifierImpl{
identifier: identifier,
},
Meter: &decorateWarpWSMeterImpl{
meter: meter,
},
MeterEnergy: &decorateWarpWSMeterEnergyImpl{
meterEnergy: meterEnergy,
},
PhaseCurrents: &decorateWarpWSPhaseCurrentsImpl{
phaseCurrents: phaseCurrents,
},
PhaseSwitcher: &decorateWarpWSPhaseSwitcherImpl{
phaseSwitcher: phaseSwitcher,
},
PhaseVoltages: &decorateWarpWSPhaseVoltagesImpl{
phaseVoltages: phaseVoltages,
},
}
case identifier == nil && meter == nil && phaseGetter != nil && phaseSwitcher != nil:
return &struct {
*WarpWS
api.PhaseGetter
api.PhaseSwitcher
}{
WarpWS: base,
PhaseGetter: &decorateWarpWSPhaseGetterImpl{
phaseGetter: phaseGetter,
},
PhaseSwitcher: &decorateWarpWSPhaseSwitcherImpl{
phaseSwitcher: phaseSwitcher,
},
}
case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages == nil:
return &struct {
*WarpWS
api.Meter
api.PhaseGetter
api.PhaseSwitcher
}{
WarpWS: base,
Meter: &decorateWarpWSMeterImpl{
meter: meter,
},
PhaseGetter: &decorateWarpWSPhaseGetterImpl{
phaseGetter: phaseGetter,
},
PhaseSwitcher: &decorateWarpWSPhaseSwitcherImpl{
phaseSwitcher: phaseSwitcher,
},
}
case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages == nil:
return &struct {
*WarpWS
api.Meter
api.MeterEnergy
api.PhaseGetter
api.PhaseSwitcher
}{
WarpWS: base,
Meter: &decorateWarpWSMeterImpl{
meter: meter,
},
MeterEnergy: &decorateWarpWSMeterEnergyImpl{
meterEnergy: meterEnergy,
},
PhaseGetter: &decorateWarpWSPhaseGetterImpl{
phaseGetter: phaseGetter,
},
PhaseSwitcher: &decorateWarpWSPhaseSwitcherImpl{
phaseSwitcher: phaseSwitcher,
},
}
case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages == nil:
return &struct {
*WarpWS
api.Meter
api.PhaseCurrents
api.PhaseGetter
api.PhaseSwitcher
}{
WarpWS: base,
Meter: &decorateWarpWSMeterImpl{
meter: meter,
},
PhaseCurrents: &decorateWarpWSPhaseCurrentsImpl{
phaseCurrents: phaseCurrents,
},
PhaseGetter: &decorateWarpWSPhaseGetterImpl{
phaseGetter: phaseGetter,
},
PhaseSwitcher: &decorateWarpWSPhaseSwitcherImpl{
phaseSwitcher: phaseSwitcher,
},
}
case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages == nil:
return &struct {
*WarpWS
api.Meter
api.MeterEnergy
api.PhaseCurrents
api.PhaseGetter
api.PhaseSwitcher
}{
WarpWS: base,
Meter: &decorateWarpWSMeterImpl{
meter: meter,
},
MeterEnergy: &decorateWarpWSMeterEnergyImpl{
meterEnergy: meterEnergy,
},
PhaseCurrents: &decorateWarpWSPhaseCurrentsImpl{
phaseCurrents: phaseCurrents,
},
PhaseGetter: &decorateWarpWSPhaseGetterImpl{
phaseGetter: phaseGetter,
},
PhaseSwitcher: &decorateWarpWSPhaseSwitcherImpl{
phaseSwitcher: phaseSwitcher,
},
}
case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages != nil:
return &struct {
*WarpWS
api.Meter
api.PhaseGetter
api.PhaseSwitcher
api.PhaseVoltages
}{
WarpWS: base,
Meter: &decorateWarpWSMeterImpl{
meter: meter,
},
PhaseGetter: &decorateWarpWSPhaseGetterImpl{
phaseGetter: phaseGetter,
},
PhaseSwitcher: &decorateWarpWSPhaseSwitcherImpl{
phaseSwitcher: phaseSwitcher,
},
PhaseVoltages: &decorateWarpWSPhaseVoltagesImpl{
phaseVoltages: phaseVoltages,
},
}
case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages != nil:
return &struct {
*WarpWS
api.Meter
api.MeterEnergy
api.PhaseGetter
api.PhaseSwitcher
api.PhaseVoltages
}{
WarpWS: base,
Meter: &decorateWarpWSMeterImpl{
meter: meter,
},
MeterEnergy: &decorateWarpWSMeterEnergyImpl{
meterEnergy: meterEnergy,
},
PhaseGetter: &decorateWarpWSPhaseGetterImpl{
phaseGetter: phaseGetter,
},
PhaseSwitcher: &decorateWarpWSPhaseSwitcherImpl{
phaseSwitcher: phaseSwitcher,
},
PhaseVoltages: &decorateWarpWSPhaseVoltagesImpl{
phaseVoltages: phaseVoltages,
},
}
case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages != nil:
return &struct {
*WarpWS
api.Meter
api.PhaseCurrents
api.PhaseGetter
api.PhaseSwitcher
api.PhaseVoltages
}{
WarpWS: base,
Meter: &decorateWarpWSMeterImpl{
meter: meter,
},
PhaseCurrents: &decorateWarpWSPhaseCurrentsImpl{
phaseCurrents: phaseCurrents,
},
PhaseGetter: &decorateWarpWSPhaseGetterImpl{
phaseGetter: phaseGetter,
},
PhaseSwitcher: &decorateWarpWSPhaseSwitcherImpl{
phaseSwitcher: phaseSwitcher,
},
PhaseVoltages: &decorateWarpWSPhaseVoltagesImpl{
phaseVoltages: phaseVoltages,
},
}
case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages != nil:
return &struct {
*WarpWS
api.Meter
api.MeterEnergy
api.PhaseCurrents
api.PhaseGetter
api.PhaseSwitcher
api.PhaseVoltages
}{
WarpWS: base,
Meter: &decorateWarpWSMeterImpl{
meter: meter,
},
MeterEnergy: &decorateWarpWSMeterEnergyImpl{
meterEnergy: meterEnergy,
},
PhaseCurrents: &decorateWarpWSPhaseCurrentsImpl{
phaseCurrents: phaseCurrents,
},
PhaseGetter: &decorateWarpWSPhaseGetterImpl{
phaseGetter: phaseGetter,
},
PhaseSwitcher: &decorateWarpWSPhaseSwitcherImpl{
phaseSwitcher: phaseSwitcher,
},
PhaseVoltages: &decorateWarpWSPhaseVoltagesImpl{
phaseVoltages: phaseVoltages,
},
}
case identifier != nil && meter == nil && phaseGetter != nil && phaseSwitcher != nil:
return &struct {
*WarpWS
api.Identifier
api.PhaseGetter
api.PhaseSwitcher
}{
WarpWS: base,
Identifier: &decorateWarpWSIdentifierImpl{
identifier: identifier,
},
PhaseGetter: &decorateWarpWSPhaseGetterImpl{
phaseGetter: phaseGetter,
},
PhaseSwitcher: &decorateWarpWSPhaseSwitcherImpl{
phaseSwitcher: phaseSwitcher,
},
}
case identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages == nil:
return &struct {
*WarpWS
api.Identifier
api.Meter
api.PhaseGetter
api.PhaseSwitcher
}{
WarpWS: base,
Identifier: &decorateWarpWSIdentifierImpl{
identifier: identifier,
},
Meter: &decorateWarpWSMeterImpl{
meter: meter,
},
PhaseGetter: &decorateWarpWSPhaseGetterImpl{
phaseGetter: phaseGetter,
},
PhaseSwitcher: &decorateWarpWSPhaseSwitcherImpl{
phaseSwitcher: phaseSwitcher,
},
}
case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages == nil:
return &struct {
*WarpWS
api.Identifier
api.Meter
api.MeterEnergy
api.PhaseGetter
api.PhaseSwitcher
}{
WarpWS: base,
Identifier: &decorateWarpWSIdentifierImpl{
identifier: identifier,
},
Meter: &decorateWarpWSMeterImpl{
meter: meter,
},
MeterEnergy: &decorateWarpWSMeterEnergyImpl{
meterEnergy: meterEnergy,
},
PhaseGetter: &decorateWarpWSPhaseGetterImpl{
phaseGetter: phaseGetter,
},
PhaseSwitcher: &decorateWarpWSPhaseSwitcherImpl{
phaseSwitcher: phaseSwitcher,
},
}
case identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages == nil:
return &struct {
*WarpWS
api.Identifier
api.Meter
api.PhaseCurrents
api.PhaseGetter
api.PhaseSwitcher
}{
WarpWS: base,
Identifier: &decorateWarpWSIdentifierImpl{
identifier: identifier,
},
Meter: &decorateWarpWSMeterImpl{
meter: meter,
},
PhaseCurrents: &decorateWarpWSPhaseCurrentsImpl{
phaseCurrents: phaseCurrents,
},
PhaseGetter: &decorateWarpWSPhaseGetterImpl{
phaseGetter: phaseGetter,
},
PhaseSwitcher: &decorateWarpWSPhaseSwitcherImpl{
phaseSwitcher: phaseSwitcher,
},
}
case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages == nil:
return &struct {
*WarpWS
api.Identifier
api.Meter
api.MeterEnergy
api.PhaseCurrents
api.PhaseGetter
api.PhaseSwitcher
}{
WarpWS: base,
Identifier: &decorateWarpWSIdentifierImpl{
identifier: identifier,
},
Meter: &decorateWarpWSMeterImpl{
meter: meter,
},
MeterEnergy: &decorateWarpWSMeterEnergyImpl{
meterEnergy: meterEnergy,
},
PhaseCurrents: &decorateWarpWSPhaseCurrentsImpl{
phaseCurrents: phaseCurrents,
},
PhaseGetter: &decorateWarpWSPhaseGetterImpl{
phaseGetter: phaseGetter,
},
PhaseSwitcher: &decorateWarpWSPhaseSwitcherImpl{
phaseSwitcher: phaseSwitcher,
},
}
case identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages != nil:
return &struct {
*WarpWS
api.Identifier
api.Meter
api.PhaseGetter
api.PhaseSwitcher
api.PhaseVoltages
}{
WarpWS: base,
Identifier: &decorateWarpWSIdentifierImpl{
identifier: identifier,
},
Meter: &decorateWarpWSMeterImpl{
meter: meter,
},
PhaseGetter: &decorateWarpWSPhaseGetterImpl{
phaseGetter: phaseGetter,
},
PhaseSwitcher: &decorateWarpWSPhaseSwitcherImpl{
phaseSwitcher: phaseSwitcher,
},
PhaseVoltages: &decorateWarpWSPhaseVoltagesImpl{
phaseVoltages: phaseVoltages,
},
}
case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages != nil:
return &struct {
*WarpWS
api.Identifier
api.Meter
api.MeterEnergy
api.PhaseGetter
api.PhaseSwitcher
api.PhaseVoltages
}{
WarpWS: base,
Identifier: &decorateWarpWSIdentifierImpl{
identifier: identifier,
},
Meter: &decorateWarpWSMeterImpl{
meter: meter,
},
MeterEnergy: &decorateWarpWSMeterEnergyImpl{
meterEnergy: meterEnergy,
},
PhaseGetter: &decorateWarpWSPhaseGetterImpl{
phaseGetter: phaseGetter,
},
PhaseSwitcher: &decorateWarpWSPhaseSwitcherImpl{
phaseSwitcher: phaseSwitcher,
},
PhaseVoltages: &decorateWarpWSPhaseVoltagesImpl{
phaseVoltages: phaseVoltages,
},
}
case identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages != nil:
return &struct {
*WarpWS
api.Identifier
api.Meter
api.PhaseCurrents
api.PhaseGetter
api.PhaseSwitcher
api.PhaseVoltages
}{
WarpWS: base,
Identifier: &decorateWarpWSIdentifierImpl{
identifier: identifier,
},
Meter: &decorateWarpWSMeterImpl{
meter: meter,
},
PhaseCurrents: &decorateWarpWSPhaseCurrentsImpl{
phaseCurrents: phaseCurrents,
},
PhaseGetter: &decorateWarpWSPhaseGetterImpl{
phaseGetter: phaseGetter,
},
PhaseSwitcher: &decorateWarpWSPhaseSwitcherImpl{
phaseSwitcher: phaseSwitcher,
},
PhaseVoltages: &decorateWarpWSPhaseVoltagesImpl{
phaseVoltages: phaseVoltages,
},
}
case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages != nil:
return &struct {
*WarpWS
api.Identifier
api.Meter
api.MeterEnergy
api.PhaseCurrents
api.PhaseGetter
api.PhaseSwitcher
api.PhaseVoltages
}{
WarpWS: base,
Identifier: &decorateWarpWSIdentifierImpl{
identifier: identifier,
},
Meter: &decorateWarpWSMeterImpl{
meter: meter,
},
MeterEnergy: &decorateWarpWSMeterEnergyImpl{
meterEnergy: meterEnergy,
},
PhaseCurrents: &decorateWarpWSPhaseCurrentsImpl{
phaseCurrents: phaseCurrents,
},
PhaseGetter: &decorateWarpWSPhaseGetterImpl{
phaseGetter: phaseGetter,
},
PhaseSwitcher: &decorateWarpWSPhaseSwitcherImpl{
phaseSwitcher: phaseSwitcher,
},
PhaseVoltages: &decorateWarpWSPhaseVoltagesImpl{
phaseVoltages: phaseVoltages,
},
}
}
return nil
}
type decorateWarpWSIdentifierImpl struct {
identifier func() (string, error)
}
func (impl *decorateWarpWSIdentifierImpl) Identify() (string, error) {
return impl.identifier()
}
type decorateWarpWSMeterImpl struct {
meter func() (float64, error)
}
func (impl *decorateWarpWSMeterImpl) CurrentPower() (float64, error) {
return impl.meter()
}
type decorateWarpWSMeterEnergyImpl struct {
meterEnergy func() (float64, error)
}
func (impl *decorateWarpWSMeterEnergyImpl) TotalEnergy() (float64, error) {
return impl.meterEnergy()
}
type decorateWarpWSPhaseCurrentsImpl struct {
phaseCurrents func() (float64, float64, float64, error)
}
func (impl *decorateWarpWSPhaseCurrentsImpl) Currents() (float64, float64, float64, error) {
return impl.phaseCurrents()
}
type decorateWarpWSPhaseGetterImpl struct {
phaseGetter func() (int, error)
}
func (impl *decorateWarpWSPhaseGetterImpl) GetPhases() (int, error) {
return impl.phaseGetter()
}
type decorateWarpWSPhaseSwitcherImpl struct {
phaseSwitcher func(int) error
}
func (impl *decorateWarpWSPhaseSwitcherImpl) Phases1p3p(p0 int) error {
return impl.phaseSwitcher(p0)
}
type decorateWarpWSPhaseVoltagesImpl struct {
phaseVoltages func() (float64, float64, float64, error)
}
func (impl *decorateWarpWSPhaseVoltagesImpl) Voltages() (float64, float64, float64, error) {
return impl.phaseVoltages()
}