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 decorateE3dc(base *E3dc, batteryCapacity func() float64, battery func() (float64, error), batteryController func(api.BatteryMode) error) api.Meter { switch { case battery == nil: return base case battery != nil && batteryCapacity == nil && batteryController == nil: return &struct { *E3dc api.Battery }{ E3dc: base, Battery: &decorateE3dcBatteryImpl{ battery: battery, }, } case battery != nil && batteryCapacity != nil && batteryController == nil: return &struct { *E3dc api.Battery api.BatteryCapacity }{ E3dc: base, Battery: &decorateE3dcBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateE3dcBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, } case battery != nil && batteryCapacity == nil && batteryController != nil: return &struct { *E3dc api.Battery api.BatteryController }{ E3dc: base, Battery: &decorateE3dcBatteryImpl{ battery: battery, }, BatteryController: &decorateE3dcBatteryControllerImpl{ batteryController: batteryController, }, } case battery != nil && batteryCapacity != nil && batteryController != nil: return &struct { *E3dc api.Battery api.BatteryCapacity api.BatteryController }{ E3dc: base, Battery: &decorateE3dcBatteryImpl{ battery: battery, }, BatteryCapacity: &decorateE3dcBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, BatteryController: &decorateE3dcBatteryControllerImpl{ batteryController: batteryController, }, } } return nil } type decorateE3dcBatteryImpl struct { battery func() (float64, error) } func (impl *decorateE3dcBatteryImpl) Soc() (float64, error) { return impl.battery() } type decorateE3dcBatteryCapacityImpl struct { batteryCapacity func() float64 } func (impl *decorateE3dcBatteryCapacityImpl) Capacity() float64 { return impl.batteryCapacity() } type decorateE3dcBatteryControllerImpl struct { batteryController func(api.BatteryMode) error } func (impl *decorateE3dcBatteryControllerImpl) SetBatteryMode(p0 api.BatteryMode) error { return impl.batteryController(p0) }