package meter // Code generated by github.com/evcc-io/evcc/cmd/tools/decorate.go. DO NOT EDIT. import ( "github.com/evcc-io/evcc/api" ) func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCurrents func() (float64, float64, float64, error), phaseVoltages func() (float64, float64, float64, error), phasePowers func() (float64, float64, float64, error), battery func() (float64, error), batteryCapacity func() float64, batterySocLimiter func() (float64, float64), batteryPowerLimiter func() (float64, float64), batteryController func(api.BatteryMode) error, maxACPowerGetter func() float64) api.Meter { switch { case battery == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: return base case battery == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.MeterEnergy }{ Meter: base, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.PhaseCurrents }{ Meter: base, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.MeterEnergy api.PhaseCurrents }{ Meter: base, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.PhaseVoltages }{ Meter: base, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.MeterEnergy api.PhaseVoltages }{ Meter: base, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.PhaseCurrents api.PhaseVoltages }{ Meter: base, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.MeterEnergy api.PhaseCurrents api.PhaseVoltages }{ Meter: base, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.PhaseCurrents api.PhasePowers }{ Meter: base, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.MeterEnergy api.PhaseCurrents api.PhasePowers }{ Meter: base, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.MeterEnergy api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.MeterEnergy }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.MeterEnergy api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.MeterEnergy api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.MeterEnergy api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.MeterEnergy api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.MeterEnergy api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.MeterEnergy }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.MeterEnergy api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.MeterEnergy api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.MeterEnergy api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.MeterEnergy api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.MeterEnergy api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatterySocLimiter }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatterySocLimiter api.MeterEnergy }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatterySocLimiter api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatterySocLimiter api.MeterEnergy api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatterySocLimiter api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatterySocLimiter api.MeterEnergy api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatterySocLimiter api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatterySocLimiter api.MeterEnergy api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatterySocLimiter api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatterySocLimiter api.MeterEnergy api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatterySocLimiter api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatterySocLimiter api.MeterEnergy api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatterySocLimiter }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatterySocLimiter api.MeterEnergy }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatterySocLimiter api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatterySocLimiter api.MeterEnergy api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatterySocLimiter api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatterySocLimiter api.MeterEnergy api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatterySocLimiter api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatterySocLimiter api.MeterEnergy api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatterySocLimiter api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatterySocLimiter api.MeterEnergy api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatterySocLimiter api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatterySocLimiter api.MeterEnergy api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryPowerLimiter }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryPowerLimiter api.MeterEnergy }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryPowerLimiter api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryPowerLimiter api.MeterEnergy api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryPowerLimiter api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryPowerLimiter api.MeterEnergy api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryPowerLimiter api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryPowerLimiter api.MeterEnergy api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryPowerLimiter api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryPowerLimiter api.MeterEnergy api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryPowerLimiter api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryPowerLimiter api.MeterEnergy api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryPowerLimiter }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryPowerLimiter api.MeterEnergy }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryPowerLimiter api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryPowerLimiter api.MeterEnergy api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryPowerLimiter api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryPowerLimiter api.MeterEnergy api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryPowerLimiter api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryPowerLimiter api.MeterEnergy api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryPowerLimiter api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryPowerLimiter api.MeterEnergy api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryPowerLimiter api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryPowerLimiter api.MeterEnergy api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryPowerLimiter api.BatterySocLimiter }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryPowerLimiter api.BatterySocLimiter api.MeterEnergy }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryPowerLimiter api.BatterySocLimiter api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryPowerLimiter api.BatterySocLimiter api.MeterEnergy api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryPowerLimiter api.BatterySocLimiter api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryPowerLimiter api.BatterySocLimiter api.MeterEnergy api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryPowerLimiter api.BatterySocLimiter api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryPowerLimiter api.BatterySocLimiter api.MeterEnergy api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryPowerLimiter api.BatterySocLimiter api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryPowerLimiter api.BatterySocLimiter api.MeterEnergy api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryPowerLimiter api.BatterySocLimiter api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryPowerLimiter api.BatterySocLimiter api.MeterEnergy api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryPowerLimiter api.BatterySocLimiter }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryPowerLimiter api.BatterySocLimiter api.MeterEnergy }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryPowerLimiter api.BatterySocLimiter api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryPowerLimiter api.BatterySocLimiter api.MeterEnergy api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryPowerLimiter api.BatterySocLimiter api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryPowerLimiter api.BatterySocLimiter api.MeterEnergy api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryPowerLimiter api.BatterySocLimiter api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryPowerLimiter api.BatterySocLimiter api.MeterEnergy api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryPowerLimiter api.BatterySocLimiter api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryPowerLimiter api.BatterySocLimiter api.MeterEnergy api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryPowerLimiter api.BatterySocLimiter api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryPowerLimiter api.BatterySocLimiter api.MeterEnergy api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryController }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryController api.MeterEnergy }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryController api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryController api.MeterEnergy api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryController api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryController api.MeterEnergy api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryController api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryController api.MeterEnergy api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryController api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryController api.MeterEnergy api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryController api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryController api.MeterEnergy api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.MeterEnergy }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.MeterEnergy api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.MeterEnergy api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.MeterEnergy api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.MeterEnergy api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.MeterEnergy api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryController api.BatterySocLimiter }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryController api.BatterySocLimiter api.MeterEnergy }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryController api.BatterySocLimiter api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryController api.BatterySocLimiter api.MeterEnergy api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryController api.BatterySocLimiter api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryController api.BatterySocLimiter api.MeterEnergy api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryController api.BatterySocLimiter api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryController api.BatterySocLimiter api.MeterEnergy api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryController api.BatterySocLimiter api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryController api.BatterySocLimiter api.MeterEnergy api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryController api.BatterySocLimiter api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryController api.BatterySocLimiter api.MeterEnergy api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatterySocLimiter }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatterySocLimiter api.MeterEnergy }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatterySocLimiter api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatterySocLimiter api.MeterEnergy api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatterySocLimiter api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatterySocLimiter api.MeterEnergy api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatterySocLimiter api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatterySocLimiter api.MeterEnergy api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatterySocLimiter api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatterySocLimiter api.MeterEnergy api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatterySocLimiter api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatterySocLimiter api.MeterEnergy api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryController api.BatteryPowerLimiter }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryController api.BatteryPowerLimiter api.MeterEnergy }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryController api.BatteryPowerLimiter api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryController api.BatteryPowerLimiter api.MeterEnergy api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryController api.BatteryPowerLimiter api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryController api.BatteryPowerLimiter api.MeterEnergy api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryController api.BatteryPowerLimiter api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryController api.BatteryPowerLimiter api.MeterEnergy api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryController api.BatteryPowerLimiter api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryController api.BatteryPowerLimiter api.MeterEnergy api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryController api.BatteryPowerLimiter api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryController api.BatteryPowerLimiter api.MeterEnergy api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter api.MeterEnergy }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter api.MeterEnergy api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter api.MeterEnergy api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter api.MeterEnergy api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter api.MeterEnergy api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter api.MeterEnergy api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter api.MeterEnergy }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter api.MeterEnergy api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter api.MeterEnergy api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter api.MeterEnergy api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter api.MeterEnergy api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter api.MeterEnergy api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter api.MeterEnergy }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter api.MeterEnergy api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter api.MeterEnergy api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter api.MeterEnergy api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter api.MeterEnergy api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter api.MeterEnergy api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.MaxACPowerGetter }{ Meter: base, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, } case battery == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.MaxACPowerGetter api.MeterEnergy }{ Meter: base, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.MaxACPowerGetter api.PhaseCurrents }{ Meter: base, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents }{ Meter: base, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.MaxACPowerGetter api.PhaseVoltages }{ Meter: base, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.MaxACPowerGetter api.MeterEnergy api.PhaseVoltages }{ Meter: base, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.MaxACPowerGetter api.PhaseCurrents api.PhaseVoltages }{ Meter: base, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents api.PhaseVoltages }{ Meter: base, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.MaxACPowerGetter api.PhaseCurrents api.PhasePowers }{ Meter: base, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents api.PhasePowers }{ Meter: base, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.MaxACPowerGetter api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.MaxACPowerGetter }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.MaxACPowerGetter api.MeterEnergy }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.MaxACPowerGetter api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.MaxACPowerGetter api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.MaxACPowerGetter api.MeterEnergy api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.MaxACPowerGetter api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.MaxACPowerGetter api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.MaxACPowerGetter api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.MaxACPowerGetter }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.MaxACPowerGetter api.MeterEnergy }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.MaxACPowerGetter api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.MaxACPowerGetter api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.MaxACPowerGetter api.MeterEnergy api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.MaxACPowerGetter api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.MaxACPowerGetter api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.MaxACPowerGetter api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatterySocLimiter api.MaxACPowerGetter }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatterySocLimiter api.MaxACPowerGetter api.MeterEnergy }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatterySocLimiter api.MaxACPowerGetter api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatterySocLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatterySocLimiter api.MaxACPowerGetter api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatterySocLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatterySocLimiter api.MaxACPowerGetter api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatterySocLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatterySocLimiter api.MaxACPowerGetter api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatterySocLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatterySocLimiter api.MaxACPowerGetter api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatterySocLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatterySocLimiter api.MaxACPowerGetter }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatterySocLimiter api.MaxACPowerGetter api.MeterEnergy }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatterySocLimiter api.MaxACPowerGetter api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatterySocLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatterySocLimiter api.MaxACPowerGetter api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatterySocLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatterySocLimiter api.MaxACPowerGetter api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatterySocLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatterySocLimiter api.MaxACPowerGetter api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatterySocLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatterySocLimiter api.MaxACPowerGetter api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatterySocLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryPowerLimiter api.MaxACPowerGetter }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryPowerLimiter api.MaxACPowerGetter api.MeterEnergy }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryPowerLimiter api.MaxACPowerGetter api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryPowerLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryPowerLimiter api.MaxACPowerGetter api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryPowerLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryPowerLimiter api.MaxACPowerGetter api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryPowerLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryPowerLimiter api.MaxACPowerGetter api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryPowerLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryPowerLimiter api.MaxACPowerGetter api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryPowerLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryPowerLimiter api.MaxACPowerGetter }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryPowerLimiter api.MaxACPowerGetter api.MeterEnergy }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryPowerLimiter api.MaxACPowerGetter api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryPowerLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryPowerLimiter api.MaxACPowerGetter api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryPowerLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryPowerLimiter api.MaxACPowerGetter api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryPowerLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryPowerLimiter api.MaxACPowerGetter api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryPowerLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryPowerLimiter api.MaxACPowerGetter api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryPowerLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryPowerLimiter api.BatterySocLimiter api.MaxACPowerGetter }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryPowerLimiter api.BatterySocLimiter api.MaxACPowerGetter api.MeterEnergy }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryPowerLimiter api.BatterySocLimiter api.MaxACPowerGetter api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryPowerLimiter api.BatterySocLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryPowerLimiter api.BatterySocLimiter api.MaxACPowerGetter api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryPowerLimiter api.BatterySocLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryPowerLimiter api.BatterySocLimiter api.MaxACPowerGetter api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryPowerLimiter api.BatterySocLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryPowerLimiter api.BatterySocLimiter api.MaxACPowerGetter api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryPowerLimiter api.BatterySocLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryPowerLimiter api.BatterySocLimiter api.MaxACPowerGetter api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryPowerLimiter api.BatterySocLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryPowerLimiter api.BatterySocLimiter api.MaxACPowerGetter }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryPowerLimiter api.BatterySocLimiter api.MaxACPowerGetter api.MeterEnergy }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryPowerLimiter api.BatterySocLimiter api.MaxACPowerGetter api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryPowerLimiter api.BatterySocLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryPowerLimiter api.BatterySocLimiter api.MaxACPowerGetter api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryPowerLimiter api.BatterySocLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryPowerLimiter api.BatterySocLimiter api.MaxACPowerGetter api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryPowerLimiter api.BatterySocLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryPowerLimiter api.BatterySocLimiter api.MaxACPowerGetter api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryPowerLimiter api.BatterySocLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryPowerLimiter api.BatterySocLimiter api.MaxACPowerGetter api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryPowerLimiter api.BatterySocLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryController api.MaxACPowerGetter }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryController api.MaxACPowerGetter api.MeterEnergy }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryController api.MaxACPowerGetter api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryController api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryController api.MaxACPowerGetter api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryController api.MaxACPowerGetter api.MeterEnergy api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryController api.MaxACPowerGetter api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryController api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryController api.MaxACPowerGetter api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryController api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryController api.MaxACPowerGetter api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryController api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.MaxACPowerGetter }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.MaxACPowerGetter api.MeterEnergy }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.MaxACPowerGetter api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.MaxACPowerGetter api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.MaxACPowerGetter api.MeterEnergy api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.MaxACPowerGetter api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.MaxACPowerGetter api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.MaxACPowerGetter api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryController api.BatterySocLimiter api.MaxACPowerGetter }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryController api.BatterySocLimiter api.MaxACPowerGetter api.MeterEnergy }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryController api.BatterySocLimiter api.MaxACPowerGetter api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryController api.BatterySocLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryController api.BatterySocLimiter api.MaxACPowerGetter api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryController api.BatterySocLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryController api.BatterySocLimiter api.MaxACPowerGetter api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryController api.BatterySocLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryController api.BatterySocLimiter api.MaxACPowerGetter api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryController api.BatterySocLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryController api.BatterySocLimiter api.MaxACPowerGetter api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryController api.BatterySocLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatterySocLimiter api.MaxACPowerGetter }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatterySocLimiter api.MaxACPowerGetter api.MeterEnergy }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatterySocLimiter api.MaxACPowerGetter api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatterySocLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatterySocLimiter api.MaxACPowerGetter api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatterySocLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatterySocLimiter api.MaxACPowerGetter api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatterySocLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatterySocLimiter api.MaxACPowerGetter api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatterySocLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatterySocLimiter api.MaxACPowerGetter api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatterySocLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryController api.BatteryPowerLimiter api.MaxACPowerGetter }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryController api.BatteryPowerLimiter api.MaxACPowerGetter api.MeterEnergy }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryController api.BatteryPowerLimiter api.MaxACPowerGetter api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryController api.BatteryPowerLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryController api.BatteryPowerLimiter api.MaxACPowerGetter api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryController api.BatteryPowerLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryController api.BatteryPowerLimiter api.MaxACPowerGetter api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryController api.BatteryPowerLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryController api.BatteryPowerLimiter api.MaxACPowerGetter api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryController api.BatteryPowerLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryController api.BatteryPowerLimiter api.MaxACPowerGetter api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryController api.BatteryPowerLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter api.MaxACPowerGetter }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter api.MaxACPowerGetter api.MeterEnergy }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter api.MaxACPowerGetter api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter api.MaxACPowerGetter api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter api.MaxACPowerGetter api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter api.MaxACPowerGetter api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter api.MaxACPowerGetter api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter api.MaxACPowerGetter }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter api.MaxACPowerGetter api.MeterEnergy }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter api.MaxACPowerGetter api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter api.MaxACPowerGetter api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter api.MaxACPowerGetter api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter api.MaxACPowerGetter api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter api.MaxACPowerGetter api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter api.MaxACPowerGetter }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter api.MaxACPowerGetter api.MeterEnergy }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter api.MaxACPowerGetter api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter api.MaxACPowerGetter api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter api.MaxACPowerGetter api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter api.MaxACPowerGetter api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents api.PhasePowers }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter api.MaxACPowerGetter api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter api.MaxACPowerGetter api.MeterEnergy api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateMeterBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateMeterBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MaxACPowerGetter: &decorateMeterMaxACPowerGetterImpl{ maxACPowerGetter: maxACPowerGetter, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } } return nil } type decorateMeterBatteryImpl struct { battery func() (float64, error) } func (impl *decorateMeterBatteryImpl) Soc() (float64, error) { return impl.battery() } type decorateMeterBatteryCapacityImpl struct { batteryCapacity func() float64 } func (impl *decorateMeterBatteryCapacityImpl) Capacity() float64 { return impl.batteryCapacity() } type decorateMeterBatteryControllerImpl struct { batteryController func(api.BatteryMode) error } func (impl *decorateMeterBatteryControllerImpl) SetBatteryMode(p0 api.BatteryMode) error { return impl.batteryController(p0) } type decorateMeterBatteryPowerLimiterImpl struct { batteryPowerLimiter func() (float64, float64) } func (impl *decorateMeterBatteryPowerLimiterImpl) GetPowerLimits() (float64, float64) { return impl.batteryPowerLimiter() } type decorateMeterBatterySocLimiterImpl struct { batterySocLimiter func() (float64, float64) } func (impl *decorateMeterBatterySocLimiterImpl) GetSocLimits() (float64, float64) { return impl.batterySocLimiter() } type decorateMeterMaxACPowerGetterImpl struct { maxACPowerGetter func() float64 } func (impl *decorateMeterMaxACPowerGetterImpl) MaxACPower() float64 { return impl.maxACPowerGetter() } type decorateMeterMeterEnergyImpl struct { meterEnergy func() (float64, error) } func (impl *decorateMeterMeterEnergyImpl) TotalEnergy() (float64, error) { return impl.meterEnergy() } type decorateMeterPhaseCurrentsImpl struct { phaseCurrents func() (float64, float64, float64, error) } func (impl *decorateMeterPhaseCurrentsImpl) Currents() (float64, float64, float64, error) { return impl.phaseCurrents() } type decorateMeterPhasePowersImpl struct { phasePowers func() (float64, float64, float64, error) } func (impl *decorateMeterPhasePowersImpl) Powers() (float64, float64, float64, error) { return impl.phasePowers() } type decorateMeterPhaseVoltagesImpl struct { phaseVoltages func() (float64, float64, float64, error) } func (impl *decorateMeterPhaseVoltagesImpl) Voltages() (float64, float64, float64, error) { return impl.phaseVoltages() }