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 decorateRCT(base *RCT, meterEnergy func() (float64, error), curtailer0 func(bool) error, curtailer1 func() (bool, error), battery func() (float64, error), batterySocLimiter func() (float64, float64), batteryPowerLimiter func() (float64, float64), batteryController func(api.BatteryMode) error, batteryCapacity func() float64) api.Meter { switch { case battery == nil && curtailer0 == nil && curtailer1 == nil && meterEnergy == nil: return base case battery == nil && curtailer0 == nil && curtailer1 == nil && meterEnergy != nil: return &struct { *RCT api.MeterEnergy }{ RCT: base, MeterEnergy: &decorateRCTMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery == nil && curtailer0 != nil && curtailer1 != nil && meterEnergy == nil: return &struct { *RCT api.Curtailer }{ RCT: base, Curtailer: &decorateRCTCurtailerImpl{ curtailer0: curtailer0, curtailer1: curtailer1, }, } case battery == nil && curtailer0 != nil && curtailer1 != nil && meterEnergy != nil: return &struct { *RCT api.Curtailer api.MeterEnergy }{ RCT: base, Curtailer: &decorateRCTCurtailerImpl{ curtailer0: curtailer0, curtailer1: curtailer1, }, MeterEnergy: &decorateRCTMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && curtailer0 == nil && curtailer1 == nil && meterEnergy == nil: return &struct { *RCT api.Battery }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && curtailer0 == nil && curtailer1 == nil && meterEnergy != nil: return &struct { *RCT api.Battery api.MeterEnergy }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, MeterEnergy: &decorateRCTMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && curtailer0 != nil && curtailer1 != nil && meterEnergy == nil: return &struct { *RCT api.Battery api.Curtailer }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, Curtailer: &decorateRCTCurtailerImpl{ curtailer0: curtailer0, curtailer1: curtailer1, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && curtailer0 != nil && curtailer1 != nil && meterEnergy != nil: return &struct { *RCT api.Battery api.Curtailer api.MeterEnergy }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, Curtailer: &decorateRCTCurtailerImpl{ curtailer0: curtailer0, curtailer1: curtailer1, }, MeterEnergy: &decorateRCTMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && curtailer0 == nil && curtailer1 == nil && meterEnergy == nil: return &struct { *RCT api.Battery api.BatterySocLimiter }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatterySocLimiter: &decorateRCTBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && curtailer0 == nil && curtailer1 == nil && meterEnergy != nil: return &struct { *RCT api.Battery api.BatterySocLimiter api.MeterEnergy }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatterySocLimiter: &decorateRCTBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateRCTMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && curtailer0 != nil && curtailer1 != nil && meterEnergy == nil: return &struct { *RCT api.Battery api.BatterySocLimiter api.Curtailer }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatterySocLimiter: &decorateRCTBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, Curtailer: &decorateRCTCurtailerImpl{ curtailer0: curtailer0, curtailer1: curtailer1, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && curtailer0 != nil && curtailer1 != nil && meterEnergy != nil: return &struct { *RCT api.Battery api.BatterySocLimiter api.Curtailer api.MeterEnergy }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatterySocLimiter: &decorateRCTBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, Curtailer: &decorateRCTCurtailerImpl{ curtailer0: curtailer0, curtailer1: curtailer1, }, MeterEnergy: &decorateRCTMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && curtailer0 == nil && curtailer1 == nil && meterEnergy == nil: return &struct { *RCT api.Battery api.BatteryPowerLimiter }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateRCTBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && curtailer0 == nil && curtailer1 == nil && meterEnergy != nil: return &struct { *RCT api.Battery api.BatteryPowerLimiter api.MeterEnergy }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateRCTBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MeterEnergy: &decorateRCTMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && curtailer0 != nil && curtailer1 != nil && meterEnergy == nil: return &struct { *RCT api.Battery api.BatteryPowerLimiter api.Curtailer }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateRCTBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, Curtailer: &decorateRCTCurtailerImpl{ curtailer0: curtailer0, curtailer1: curtailer1, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && curtailer0 != nil && curtailer1 != nil && meterEnergy != nil: return &struct { *RCT api.Battery api.BatteryPowerLimiter api.Curtailer api.MeterEnergy }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateRCTBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, Curtailer: &decorateRCTCurtailerImpl{ curtailer0: curtailer0, curtailer1: curtailer1, }, MeterEnergy: &decorateRCTMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && curtailer0 == nil && curtailer1 == nil && meterEnergy == nil: return &struct { *RCT api.Battery api.BatteryPowerLimiter api.BatterySocLimiter }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateRCTBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateRCTBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && curtailer0 == nil && curtailer1 == nil && meterEnergy != nil: return &struct { *RCT api.Battery api.BatteryPowerLimiter api.BatterySocLimiter api.MeterEnergy }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateRCTBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateRCTBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateRCTMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && curtailer0 != nil && curtailer1 != nil && meterEnergy == nil: return &struct { *RCT api.Battery api.BatteryPowerLimiter api.BatterySocLimiter api.Curtailer }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateRCTBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateRCTBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, Curtailer: &decorateRCTCurtailerImpl{ curtailer0: curtailer0, curtailer1: curtailer1, }, } case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && curtailer0 != nil && curtailer1 != nil && meterEnergy != nil: return &struct { *RCT api.Battery api.BatteryPowerLimiter api.BatterySocLimiter api.Curtailer api.MeterEnergy }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryPowerLimiter: &decorateRCTBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateRCTBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, Curtailer: &decorateRCTCurtailerImpl{ curtailer0: curtailer0, curtailer1: curtailer1, }, MeterEnergy: &decorateRCTMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && curtailer0 == nil && curtailer1 == nil && meterEnergy == nil: return &struct { *RCT api.Battery api.BatteryController }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryController: &decorateRCTBatteryControllerImpl{ batteryController: batteryController, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && curtailer0 == nil && curtailer1 == nil && meterEnergy != nil: return &struct { *RCT api.Battery api.BatteryController api.MeterEnergy }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryController: &decorateRCTBatteryControllerImpl{ batteryController: batteryController, }, MeterEnergy: &decorateRCTMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && curtailer0 != nil && curtailer1 != nil && meterEnergy == nil: return &struct { *RCT api.Battery api.BatteryController api.Curtailer }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryController: &decorateRCTBatteryControllerImpl{ batteryController: batteryController, }, Curtailer: &decorateRCTCurtailerImpl{ curtailer0: curtailer0, curtailer1: curtailer1, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && curtailer0 != nil && curtailer1 != nil && meterEnergy != nil: return &struct { *RCT api.Battery api.BatteryController api.Curtailer api.MeterEnergy }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryController: &decorateRCTBatteryControllerImpl{ batteryController: batteryController, }, Curtailer: &decorateRCTCurtailerImpl{ curtailer0: curtailer0, curtailer1: curtailer1, }, MeterEnergy: &decorateRCTMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && curtailer0 == nil && curtailer1 == nil && meterEnergy == nil: return &struct { *RCT api.Battery api.BatteryController api.BatterySocLimiter }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryController: &decorateRCTBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateRCTBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && curtailer0 == nil && curtailer1 == nil && meterEnergy != nil: return &struct { *RCT api.Battery api.BatteryController api.BatterySocLimiter api.MeterEnergy }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryController: &decorateRCTBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateRCTBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateRCTMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && curtailer0 != nil && curtailer1 != nil && meterEnergy == nil: return &struct { *RCT api.Battery api.BatteryController api.BatterySocLimiter api.Curtailer }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryController: &decorateRCTBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateRCTBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, Curtailer: &decorateRCTCurtailerImpl{ curtailer0: curtailer0, curtailer1: curtailer1, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && curtailer0 != nil && curtailer1 != nil && meterEnergy != nil: return &struct { *RCT api.Battery api.BatteryController api.BatterySocLimiter api.Curtailer api.MeterEnergy }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryController: &decorateRCTBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateRCTBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, Curtailer: &decorateRCTCurtailerImpl{ curtailer0: curtailer0, curtailer1: curtailer1, }, MeterEnergy: &decorateRCTMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && curtailer0 == nil && curtailer1 == nil && meterEnergy == nil: return &struct { *RCT api.Battery api.BatteryController api.BatteryPowerLimiter }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryController: &decorateRCTBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateRCTBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && curtailer0 == nil && curtailer1 == nil && meterEnergy != nil: return &struct { *RCT api.Battery api.BatteryController api.BatteryPowerLimiter api.MeterEnergy }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryController: &decorateRCTBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateRCTBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MeterEnergy: &decorateRCTMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && curtailer0 != nil && curtailer1 != nil && meterEnergy == nil: return &struct { *RCT api.Battery api.BatteryController api.BatteryPowerLimiter api.Curtailer }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryController: &decorateRCTBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateRCTBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, Curtailer: &decorateRCTCurtailerImpl{ curtailer0: curtailer0, curtailer1: curtailer1, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && curtailer0 != nil && curtailer1 != nil && meterEnergy != nil: return &struct { *RCT api.Battery api.BatteryController api.BatteryPowerLimiter api.Curtailer api.MeterEnergy }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryController: &decorateRCTBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateRCTBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, Curtailer: &decorateRCTCurtailerImpl{ curtailer0: curtailer0, curtailer1: curtailer1, }, MeterEnergy: &decorateRCTMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && curtailer0 == nil && curtailer1 == nil && meterEnergy == nil: return &struct { *RCT api.Battery api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryController: &decorateRCTBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateRCTBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateRCTBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && curtailer0 == nil && curtailer1 == nil && meterEnergy != nil: return &struct { *RCT api.Battery api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter api.MeterEnergy }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryController: &decorateRCTBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateRCTBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateRCTBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateRCTMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && curtailer0 != nil && curtailer1 != nil && meterEnergy == nil: return &struct { *RCT api.Battery api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter api.Curtailer }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryController: &decorateRCTBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateRCTBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateRCTBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, Curtailer: &decorateRCTCurtailerImpl{ curtailer0: curtailer0, curtailer1: curtailer1, }, } case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && curtailer0 != nil && curtailer1 != nil && meterEnergy != nil: return &struct { *RCT api.Battery api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter api.Curtailer api.MeterEnergy }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryController: &decorateRCTBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateRCTBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateRCTBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, Curtailer: &decorateRCTCurtailerImpl{ curtailer0: curtailer0, curtailer1: curtailer1, }, MeterEnergy: &decorateRCTMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && curtailer0 == nil && curtailer1 == nil && meterEnergy == nil: return &struct { *RCT api.Battery api.BatteryCapacity }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateRCTBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && curtailer0 == nil && curtailer1 == nil && meterEnergy != nil: return &struct { *RCT api.Battery api.BatteryCapacity api.MeterEnergy }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateRCTBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, MeterEnergy: &decorateRCTMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && curtailer0 != nil && curtailer1 != nil && meterEnergy == nil: return &struct { *RCT api.Battery api.BatteryCapacity api.Curtailer }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateRCTBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, Curtailer: &decorateRCTCurtailerImpl{ curtailer0: curtailer0, curtailer1: curtailer1, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && curtailer0 != nil && curtailer1 != nil && meterEnergy != nil: return &struct { *RCT api.Battery api.BatteryCapacity api.Curtailer api.MeterEnergy }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateRCTBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, Curtailer: &decorateRCTCurtailerImpl{ curtailer0: curtailer0, curtailer1: curtailer1, }, MeterEnergy: &decorateRCTMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && curtailer0 == nil && curtailer1 == nil && meterEnergy == nil: return &struct { *RCT api.Battery api.BatteryCapacity api.BatterySocLimiter }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateRCTBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatterySocLimiter: &decorateRCTBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && curtailer0 == nil && curtailer1 == nil && meterEnergy != nil: return &struct { *RCT api.Battery api.BatteryCapacity api.BatterySocLimiter api.MeterEnergy }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateRCTBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatterySocLimiter: &decorateRCTBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateRCTMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && curtailer0 != nil && curtailer1 != nil && meterEnergy == nil: return &struct { *RCT api.Battery api.BatteryCapacity api.BatterySocLimiter api.Curtailer }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateRCTBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatterySocLimiter: &decorateRCTBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, Curtailer: &decorateRCTCurtailerImpl{ curtailer0: curtailer0, curtailer1: curtailer1, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && curtailer0 != nil && curtailer1 != nil && meterEnergy != nil: return &struct { *RCT api.Battery api.BatteryCapacity api.BatterySocLimiter api.Curtailer api.MeterEnergy }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateRCTBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatterySocLimiter: &decorateRCTBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, Curtailer: &decorateRCTCurtailerImpl{ curtailer0: curtailer0, curtailer1: curtailer1, }, MeterEnergy: &decorateRCTMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && curtailer0 == nil && curtailer1 == nil && meterEnergy == nil: return &struct { *RCT api.Battery api.BatteryCapacity api.BatteryPowerLimiter }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateRCTBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateRCTBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && curtailer0 == nil && curtailer1 == nil && meterEnergy != nil: return &struct { *RCT api.Battery api.BatteryCapacity api.BatteryPowerLimiter api.MeterEnergy }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateRCTBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateRCTBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MeterEnergy: &decorateRCTMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && curtailer0 != nil && curtailer1 != nil && meterEnergy == nil: return &struct { *RCT api.Battery api.BatteryCapacity api.BatteryPowerLimiter api.Curtailer }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateRCTBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateRCTBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, Curtailer: &decorateRCTCurtailerImpl{ curtailer0: curtailer0, curtailer1: curtailer1, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && curtailer0 != nil && curtailer1 != nil && meterEnergy != nil: return &struct { *RCT api.Battery api.BatteryCapacity api.BatteryPowerLimiter api.Curtailer api.MeterEnergy }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateRCTBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateRCTBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, Curtailer: &decorateRCTCurtailerImpl{ curtailer0: curtailer0, curtailer1: curtailer1, }, MeterEnergy: &decorateRCTMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && curtailer0 == nil && curtailer1 == nil && meterEnergy == nil: return &struct { *RCT api.Battery api.BatteryCapacity api.BatteryPowerLimiter api.BatterySocLimiter }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateRCTBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateRCTBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateRCTBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && curtailer0 == nil && curtailer1 == nil && meterEnergy != nil: return &struct { *RCT api.Battery api.BatteryCapacity api.BatteryPowerLimiter api.BatterySocLimiter api.MeterEnergy }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateRCTBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateRCTBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateRCTBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateRCTMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && curtailer0 != nil && curtailer1 != nil && meterEnergy == nil: return &struct { *RCT api.Battery api.BatteryCapacity api.BatteryPowerLimiter api.BatterySocLimiter api.Curtailer }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateRCTBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateRCTBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateRCTBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, Curtailer: &decorateRCTCurtailerImpl{ curtailer0: curtailer0, curtailer1: curtailer1, }, } case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && curtailer0 != nil && curtailer1 != nil && meterEnergy != nil: return &struct { *RCT api.Battery api.BatteryCapacity api.BatteryPowerLimiter api.BatterySocLimiter api.Curtailer api.MeterEnergy }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateRCTBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryPowerLimiter: &decorateRCTBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateRCTBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, Curtailer: &decorateRCTCurtailerImpl{ curtailer0: curtailer0, curtailer1: curtailer1, }, MeterEnergy: &decorateRCTMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && curtailer0 == nil && curtailer1 == nil && meterEnergy == nil: return &struct { *RCT api.Battery api.BatteryCapacity api.BatteryController }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateRCTBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateRCTBatteryControllerImpl{ batteryController: batteryController, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && curtailer0 == nil && curtailer1 == nil && meterEnergy != nil: return &struct { *RCT api.Battery api.BatteryCapacity api.BatteryController api.MeterEnergy }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateRCTBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateRCTBatteryControllerImpl{ batteryController: batteryController, }, MeterEnergy: &decorateRCTMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && curtailer0 != nil && curtailer1 != nil && meterEnergy == nil: return &struct { *RCT api.Battery api.BatteryCapacity api.BatteryController api.Curtailer }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateRCTBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateRCTBatteryControllerImpl{ batteryController: batteryController, }, Curtailer: &decorateRCTCurtailerImpl{ curtailer0: curtailer0, curtailer1: curtailer1, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && curtailer0 != nil && curtailer1 != nil && meterEnergy != nil: return &struct { *RCT api.Battery api.BatteryCapacity api.BatteryController api.Curtailer api.MeterEnergy }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateRCTBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateRCTBatteryControllerImpl{ batteryController: batteryController, }, Curtailer: &decorateRCTCurtailerImpl{ curtailer0: curtailer0, curtailer1: curtailer1, }, MeterEnergy: &decorateRCTMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && curtailer0 == nil && curtailer1 == nil && meterEnergy == nil: return &struct { *RCT api.Battery api.BatteryCapacity api.BatteryController api.BatterySocLimiter }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateRCTBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateRCTBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateRCTBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && curtailer0 == nil && curtailer1 == nil && meterEnergy != nil: return &struct { *RCT api.Battery api.BatteryCapacity api.BatteryController api.BatterySocLimiter api.MeterEnergy }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateRCTBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateRCTBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateRCTBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateRCTMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && curtailer0 != nil && curtailer1 != nil && meterEnergy == nil: return &struct { *RCT api.Battery api.BatteryCapacity api.BatteryController api.BatterySocLimiter api.Curtailer }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateRCTBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateRCTBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateRCTBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, Curtailer: &decorateRCTCurtailerImpl{ curtailer0: curtailer0, curtailer1: curtailer1, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && curtailer0 != nil && curtailer1 != nil && meterEnergy != nil: return &struct { *RCT api.Battery api.BatteryCapacity api.BatteryController api.BatterySocLimiter api.Curtailer api.MeterEnergy }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateRCTBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateRCTBatteryControllerImpl{ batteryController: batteryController, }, BatterySocLimiter: &decorateRCTBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, Curtailer: &decorateRCTCurtailerImpl{ curtailer0: curtailer0, curtailer1: curtailer1, }, MeterEnergy: &decorateRCTMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && curtailer0 == nil && curtailer1 == nil && meterEnergy == nil: return &struct { *RCT api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateRCTBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateRCTBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateRCTBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && curtailer0 == nil && curtailer1 == nil && meterEnergy != nil: return &struct { *RCT api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter api.MeterEnergy }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateRCTBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateRCTBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateRCTBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, MeterEnergy: &decorateRCTMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && curtailer0 != nil && curtailer1 != nil && meterEnergy == nil: return &struct { *RCT api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter api.Curtailer }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateRCTBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateRCTBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateRCTBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, Curtailer: &decorateRCTCurtailerImpl{ curtailer0: curtailer0, curtailer1: curtailer1, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && curtailer0 != nil && curtailer1 != nil && meterEnergy != nil: return &struct { *RCT api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter api.Curtailer api.MeterEnergy }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateRCTBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateRCTBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateRCTBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, Curtailer: &decorateRCTCurtailerImpl{ curtailer0: curtailer0, curtailer1: curtailer1, }, MeterEnergy: &decorateRCTMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && curtailer0 == nil && curtailer1 == nil && meterEnergy == nil: return &struct { *RCT api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateRCTBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateRCTBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateRCTBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateRCTBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && curtailer0 == nil && curtailer1 == nil && meterEnergy != nil: return &struct { *RCT api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter api.MeterEnergy }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateRCTBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateRCTBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateRCTBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateRCTBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, MeterEnergy: &decorateRCTMeterEnergyImpl{ meterEnergy: meterEnergy, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && curtailer0 != nil && curtailer1 != nil && meterEnergy == nil: return &struct { *RCT api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter api.Curtailer }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateRCTBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateRCTBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateRCTBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateRCTBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, Curtailer: &decorateRCTCurtailerImpl{ curtailer0: curtailer0, curtailer1: curtailer1, }, } case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && curtailer0 != nil && curtailer1 != nil && meterEnergy != nil: return &struct { *RCT api.Battery api.BatteryCapacity api.BatteryController api.BatteryPowerLimiter api.BatterySocLimiter api.Curtailer api.MeterEnergy }{ RCT: base, Battery: &decorateRCTBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateRCTBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateRCTBatteryControllerImpl{ batteryController: batteryController, }, BatteryPowerLimiter: &decorateRCTBatteryPowerLimiterImpl{ batteryPowerLimiter: batteryPowerLimiter, }, BatterySocLimiter: &decorateRCTBatterySocLimiterImpl{ batterySocLimiter: batterySocLimiter, }, Curtailer: &decorateRCTCurtailerImpl{ curtailer0: curtailer0, curtailer1: curtailer1, }, MeterEnergy: &decorateRCTMeterEnergyImpl{ meterEnergy: meterEnergy, }, } } return nil } type decorateRCTBatteryImpl struct { battery func() (float64, error) } func (impl *decorateRCTBatteryImpl) Soc() (float64, error) { return impl.battery() } type decorateRCTBatteryCapacityImpl struct { batteryCapacity func() float64 } func (impl *decorateRCTBatteryCapacityImpl) Capacity() float64 { return impl.batteryCapacity() } type decorateRCTBatteryControllerImpl struct { batteryController func(api.BatteryMode) error } func (impl *decorateRCTBatteryControllerImpl) SetBatteryMode(p0 api.BatteryMode) error { return impl.batteryController(p0) } type decorateRCTBatteryPowerLimiterImpl struct { batteryPowerLimiter func() (float64, float64) } func (impl *decorateRCTBatteryPowerLimiterImpl) GetPowerLimits() (float64, float64) { return impl.batteryPowerLimiter() } type decorateRCTBatterySocLimiterImpl struct { batterySocLimiter func() (float64, float64) } func (impl *decorateRCTBatterySocLimiterImpl) GetSocLimits() (float64, float64) { return impl.batterySocLimiter() } type decorateRCTCurtailerImpl struct { curtailer0 func(bool) error curtailer1 func() (bool, error) } func (impl *decorateRCTCurtailerImpl) Curtail(p0 bool) error { return impl.curtailer0(p0) } func (impl *decorateRCTCurtailerImpl) Curtailed() (bool, error) { return impl.curtailer1() } type decorateRCTMeterEnergyImpl struct { meterEnergy func() (float64, error) } func (impl *decorateRCTMeterEnergyImpl) TotalEnergy() (float64, error) { return impl.meterEnergy() }