package charger // Code generated by github.com/evcc-io/evcc/cmd/tools/decorate.go. DO NOT EDIT. import ( "github.com/evcc-io/evcc/api" ) func decorateSEMP(base *SEMP, phaseSwitcher func(int) error, phaseGetter func() (int, error), chargeRater func() (float64, error)) api.Charger { switch { case chargeRater == nil && phaseSwitcher == nil: return base case chargeRater == nil && phaseGetter == nil && phaseSwitcher != nil: return &struct { *SEMP api.PhaseSwitcher }{ SEMP: base, PhaseSwitcher: &decorateSEMPPhaseSwitcherImpl{ phaseSwitcher: phaseSwitcher, }, } case chargeRater == nil && phaseGetter != nil && phaseSwitcher != nil: return &struct { *SEMP api.PhaseGetter api.PhaseSwitcher }{ SEMP: base, PhaseGetter: &decorateSEMPPhaseGetterImpl{ phaseGetter: phaseGetter, }, PhaseSwitcher: &decorateSEMPPhaseSwitcherImpl{ phaseSwitcher: phaseSwitcher, }, } case chargeRater != nil && phaseSwitcher == nil: return &struct { *SEMP api.ChargeRater }{ SEMP: base, ChargeRater: &decorateSEMPChargeRaterImpl{ chargeRater: chargeRater, }, } case chargeRater != nil && phaseGetter == nil && phaseSwitcher != nil: return &struct { *SEMP api.ChargeRater api.PhaseSwitcher }{ SEMP: base, ChargeRater: &decorateSEMPChargeRaterImpl{ chargeRater: chargeRater, }, PhaseSwitcher: &decorateSEMPPhaseSwitcherImpl{ phaseSwitcher: phaseSwitcher, }, } case chargeRater != nil && phaseGetter != nil && phaseSwitcher != nil: return &struct { *SEMP api.ChargeRater api.PhaseGetter api.PhaseSwitcher }{ SEMP: base, ChargeRater: &decorateSEMPChargeRaterImpl{ chargeRater: chargeRater, }, PhaseGetter: &decorateSEMPPhaseGetterImpl{ phaseGetter: phaseGetter, }, PhaseSwitcher: &decorateSEMPPhaseSwitcherImpl{ phaseSwitcher: phaseSwitcher, }, } } return nil } type decorateSEMPChargeRaterImpl struct { chargeRater func() (float64, error) } func (impl *decorateSEMPChargeRaterImpl) ChargedEnergy() (float64, error) { return impl.chargeRater() } type decorateSEMPPhaseGetterImpl struct { phaseGetter func() (int, error) } func (impl *decorateSEMPPhaseGetterImpl) GetPhases() (int, error) { return impl.phaseGetter() } type decorateSEMPPhaseSwitcherImpl struct { phaseSwitcher func(int) error } func (impl *decorateSEMPPhaseSwitcherImpl) Phases1p3p(p0 int) error { return impl.phaseSwitcher(p0) }