diff --git a/api/api.go b/api/api.go index 7ee9eae5a8..e313594a9a 100644 --- a/api/api.go +++ b/api/api.go @@ -158,8 +158,7 @@ type CurrentLimiter interface { // SocLimiter returns the soc limit type SocLimiter interface { - // TODO rename LimitSoc - TargetSoc() (float64, error) + GetLimitSoc() (int64, error) } // ChargeController allows to start/stop the charging session on the vehicle side diff --git a/assets/js/components/ChargingPlan.vue b/assets/js/components/ChargingPlan.vue index af38363dba..edb2d804ff 100644 --- a/assets/js/components/ChargingPlan.vue +++ b/assets/js/components/ChargingPlan.vue @@ -135,7 +135,7 @@ export default { vehicle: Object, capacity: Number, vehicleSoc: Number, - vehicleTargetSoc: Number, + vehicleLimitSoc: Number, }, data: function () { return { diff --git a/assets/js/components/ChargingPlanSettings.vue b/assets/js/components/ChargingPlanSettings.vue index bcc9d623d1..fe55cb68d7 100644 --- a/assets/js/components/ChargingPlanSettings.vue +++ b/assets/js/components/ChargingPlanSettings.vue @@ -60,7 +60,7 @@ export default { mode: String, capacity: Number, vehicle: Object, - vehicleTargetSoc: Number, + vehicleLimitSoc: Number, }, emits: ["plan-removed", "plan-updated"], data: function () { diff --git a/assets/js/components/ChargingPlanWarnings.vue b/assets/js/components/ChargingPlanWarnings.vue index 2d72d43800..5b49360155 100644 --- a/assets/js/components/ChargingPlanWarnings.vue +++ b/assets/js/components/ChargingPlanWarnings.vue @@ -44,7 +44,7 @@ export default { mode: String, tariff: Object, plan: Object, - vehicleTargetSoc: Number, + vehicleLimitSoc: Number, }, computed: { endTime: function () { @@ -93,7 +93,7 @@ export default { }, targetIsAboveVehicleLimit: function () { if (this.socBasedPlanning) { - return this.effectivePlanSoc > (this.vehicleTargetSoc || 100); + return this.effectivePlanSoc > (this.vehicleLimitSoc || 100); } return false; }, @@ -104,7 +104,7 @@ export default { return this.fmtKWh(this.limitEnergy * 1e3); }, vehicleLimitFmt: function () { - return this.fmtSoc(this.vehicleTargetSoc); + return this.fmtSoc(this.vehicleLimitSoc); }, goalFmt: function () { if (this.socBasedPlanning) { diff --git a/assets/js/components/Loadpoint.vue b/assets/js/components/Loadpoint.vue index 176d00f8a0..2a685bb8d5 100644 --- a/assets/js/components/Loadpoint.vue +++ b/assets/js/components/Loadpoint.vue @@ -147,7 +147,7 @@ export default { vehicleSoc: Number, vehicleName: String, vehicleIcon: String, - vehicleTargetSoc: Number, + vehicleLimitSoc: Number, vehicles: Array, planActive: Boolean, planProjectedStart: String, diff --git a/assets/js/components/Vehicle.story.vue b/assets/js/components/Vehicle.story.vue index 04b4e77651..801ce1d4cd 100644 --- a/assets/js/components/Vehicle.story.vue +++ b/assets/js/components/Vehicle.story.vue @@ -82,10 +82,10 @@ const hoursFromNow = function (hours) { /> - + - + diff --git a/assets/js/components/Vehicle.vue b/assets/js/components/Vehicle.vue index 31159efe7d..9e9520d746 100644 --- a/assets/js/components/Vehicle.vue +++ b/assets/js/components/Vehicle.vue @@ -122,7 +122,7 @@ export default { vehicleRange: Number, vehicles: Array, vehicleSoc: Number, - vehicleTargetSoc: Number, + vehicleLimitSoc: Number, vehicleNotReachable: Boolean, }, emits: ["limit-soc-updated", "limit-energy-updated", "change-vehicle", "remove-vehicle"], diff --git a/assets/js/components/VehicleSoc.vue b/assets/js/components/VehicleSoc.vue index 5d01fcb200..831bb98165 100644 --- a/assets/js/components/VehicleSoc.vue +++ b/assets/js/components/VehicleSoc.vue @@ -20,13 +20,13 @@ :style="{ width: `${remainingSocWidth}%`, ...transition }" >
0 && this.vehicleTargetSoc > this.vehicleSoc; + vehicleLimitSocActive: function () { + return this.vehicleLimitSoc > 0 && this.vehicleLimitSoc > this.vehicleSoc; }, planMarkerPosition: function () { if (this.socBasedPlanning) { @@ -153,7 +153,7 @@ export default { }, planMarkerUnreachable: function () { if (this.socBasedPlanning) { - const vehicleLimit = this.vehicleTargetSoc || 100; + const vehicleLimit = this.vehicleLimitSoc || 100; return this.effectivePlanSoc > vehicleLimit; } return false; @@ -177,7 +177,7 @@ export default { return true; }, sliderActive: function () { - const isBelowVehicleLimit = this.visibleLimitSoc <= (this.vehicleTargetSoc || 100); + const isBelowVehicleLimit = this.visibleLimitSoc <= (this.vehicleLimitSoc || 100); const isAbovePlanLimit = this.visibleLimitSoc >= (this.effectivePlanSoc || 0); return isBelowVehicleLimit && isAbovePlanLimit; }, @@ -199,7 +199,7 @@ export default { return this.minSoc - this.vehicleSoc; } const limit = Math.min( - this.vehicleTargetSoc || 100, + this.vehicleLimitSoc || 100, Math.max(this.visibleLimitSoc, this.effectivePlanSoc || 0) ); if (limit > this.vehicleSoc) { @@ -219,7 +219,7 @@ export default { effectiveLimitSoc: function () { this.selectedLimitSoc = this.effectiveLimitSoc; }, - vehicleTargetSoc: function () { + vehicleLimitSoc: function () { this.updateTooltip(); }, }, @@ -256,10 +256,10 @@ export default { }, updateTooltip: function () { if (!this.tooltip) { - this.tooltip = new Tooltip(this.$refs.vehicleTargetSoc); + this.tooltip = new Tooltip(this.$refs.vehicleLimitSoc); } - const soc = this.vehicleTargetSoc; - const content = this.$t("main.vehicleSoc.vehicleTarget", { soc }); + const soc = this.vehicleLimitSoc; + const content = this.$t("main.vehicleSoc.vehicleLimit", { soc }); this.tooltip.setContent({ ".tooltip-inner": content }); }, }, diff --git a/assets/js/components/VehicleStatus.test.js b/assets/js/components/VehicleStatus.test.js index 60311bdca5..3a18ed3d97 100644 --- a/assets/js/components/VehicleStatus.test.js +++ b/assets/js/components/VehicleStatus.test.js @@ -152,10 +152,10 @@ describe("vehicle target soc", () => { { connected: true, enabled: true, - vehicleTargetSoc: 70, + vehicleLimitSoc: 70, vehicleSoc: 70, }, - "vehicleTargetReached", + "vehicleLimitReached", { soc: 70 } ); }); @@ -164,10 +164,10 @@ describe("vehicle target soc", () => { { connected: true, enabled: true, - vehicleTargetSoc: 70, + vehicleLimitSoc: 70, vehicleSoc: 69, }, - "vehicleTargetReached", + "vehicleLimitReached", { soc: 70 } ); }); diff --git a/assets/js/components/VehicleStatus.vue b/assets/js/components/VehicleStatus.vue index 9f4c725832..8485c206df 100644 --- a/assets/js/components/VehicleStatus.vue +++ b/assets/js/components/VehicleStatus.vue @@ -12,7 +12,7 @@ export default { mixins: [formatter], props: { vehicleSoc: Number, - vehicleTargetSoc: Number, + vehicleLimitSoc: Number, minSoc: Number, enabled: Boolean, connected: Boolean, @@ -105,8 +105,8 @@ export default { } if (this.enabled && !this.charging) { - if (this.vehicleTargetSoc > 0 && this.vehicleSoc >= this.vehicleTargetSoc - 1) { - return t("vehicleTargetReached", { soc: this.vehicleTargetSoc }); + if (this.vehicleLimitSoc > 0 && this.vehicleSoc >= this.vehicleLimitSoc - 1) { + return t("vehicleLimitReached", { soc: this.vehicleLimitSoc }); } return t("waitForVehicle"); } diff --git a/cmd/dumper.go b/cmd/dumper.go index 139a9d5353..3b82d1f459 100644 --- a/cmd/dumper.go +++ b/cmd/dumper.go @@ -183,10 +183,10 @@ func (d *dumper) Dump(name string, v interface{}) { } if v, ok := v.(api.SocLimiter); ok { - if targetSoc, err := v.TargetSoc(); err != nil { - fmt.Fprintf(w, "Target Soc:\t%v\n", err) + if limitSoc, err := v.GetLimitSoc(); err != nil { + fmt.Fprintf(w, "Limit Soc:\t%v\n", err) } else { - fmt.Fprintf(w, "Target Soc:\t%.0f%%\n", targetSoc) + fmt.Fprintf(w, "Limit Soc:\t%d%%\n", limitSoc) } } diff --git a/core/keys/loadpoint.go b/core/keys/loadpoint.go index b17d4c1a5b..c084e3f4e1 100644 --- a/core/keys/loadpoint.go +++ b/core/keys/loadpoint.go @@ -72,6 +72,6 @@ const ( VehicleOdometer = "vehicleOdometer" // vehicle odometer VehicleRange = "vehicleRange" // vehicle range VehicleSoc = "vehicleSoc" // vehicle soc - VehicleTargetSoc = "vehicleTargetSoc" // vehicle api soc limit + VehicleLimitSoc = "vehicleLimitSoc" // vehicle api soc limit VehicleClimaterActive = "vehicleClimaterActive" // vehicle climater active ) diff --git a/core/loadpoint.go b/core/loadpoint.go index 399c32bab9..80e6d5d940 100644 --- a/core/loadpoint.go +++ b/core/loadpoint.go @@ -1424,19 +1424,19 @@ func (lp *Loadpoint) publishSocAndRange() { // vehicle target soc // TODO take vehicle api limits into account - targetSoc := 100 + apiLimitSoc := 100 if vs, ok := lp.GetVehicle().(api.SocLimiter); ok { - if limit, err := vs.TargetSoc(); err == nil { - targetSoc = int(math.Trunc(limit)) - lp.log.DEBUG.Printf("vehicle soc limit: %.0f%%", limit) - lp.publish(keys.VehicleTargetSoc, limit) + if limit, err := vs.GetLimitSoc(); err == nil { + apiLimitSoc = int(limit) + lp.log.DEBUG.Printf("vehicle soc limit: %d%%", limit) + lp.publish(keys.VehicleLimitSoc, limit) } else if !errors.Is(err, api.ErrNotAvailable) { lp.log.ERROR.Printf("vehicle soc limit: %v", err) } } // use minimum of vehicle and loadpoint - limitSoc := min(targetSoc, lp.effectiveLimitSoc()) + limitSoc := min(apiLimitSoc, lp.effectiveLimitSoc()) var d time.Duration if lp.charging() { diff --git a/core/loadpoint_vehicle.go b/core/loadpoint_vehicle.go index c8e8afa994..a8b5b502fb 100644 --- a/core/loadpoint_vehicle.go +++ b/core/loadpoint_vehicle.go @@ -191,7 +191,7 @@ func (lp *Loadpoint) unpublishVehicle() { lp.publish(keys.VehicleClimaterActive, nil) lp.publish(keys.VehicleSoc, 0.0) lp.publish(keys.VehicleRange, int64(0)) - lp.publish(keys.VehicleTargetSoc, 0.0) + lp.publish(keys.VehicleLimitSoc, 0.0) lp.setRemainingEnergy(0) lp.setRemainingDuration(0) diff --git a/i18n/ca.toml b/i18n/ca.toml index add3dde92d..6b238e639c 100644 --- a/i18n/ca.toml +++ b/i18n/ca.toml @@ -221,7 +221,7 @@ charging = "carregant" connected = "connectat" disconnected = "desconnectat" ready = "preparat" -vehicleTarget = "límit de vehicle: {soc}%" +vehicleLimit = "límit de vehicle: {soc}%" [main.vehicleStatus] charging = "Carregant..." @@ -239,7 +239,7 @@ targetChargeActive = "Càrrega objectiu activa..." targetChargePlanned = "La càrrega objectiu comença a {time}." targetChargeWaitForVehicle = "Càrrega objectiu llesta. Esperar vehicle." unknown = "" -vehicleTargetReached = "Límit de vehicle {soc}% assolit." +vehicleLimitReached = "Límit de vehicle {soc}% assolit." waitForVehicle = "A punt per carregar. Esperant vehicle." [notifications] diff --git a/i18n/cs.toml b/i18n/cs.toml index b0c3bec25e..33087234d8 100644 --- a/i18n/cs.toml +++ b/i18n/cs.toml @@ -352,7 +352,7 @@ charging = "nabíjení" connected = "připojeno" disconnected = "odpojeno" ready = "připraveno" -vehicleTarget = "Limit vozidla: {soc}%" +vehicleLimit = "Limit vozidla: {soc}%" [main.vehicleStatus] charging = "Nabíjení..." @@ -370,7 +370,7 @@ targetChargeActive = "Nabíjení na cílovou hodnotu aktivní..." targetChargePlanned = "Nabíjení na cílovou hodnotu začne v {time}." targetChargeWaitForVehicle = "Cílové nabíjení připraveno. Čekám na vozidlo..." unknown = "" -vehicleTargetReached = "Limit vozidla {soc}% dosažen." +vehicleLimitReached = "Limit vozidla {soc}% dosažen." waitForVehicle = "Připraveno. Čekám na vozidlo..." [notifications] diff --git a/i18n/da.toml b/i18n/da.toml index 438191780c..18aa8b886e 100644 --- a/i18n/da.toml +++ b/i18n/da.toml @@ -356,7 +356,7 @@ charging = "opladning" connected = "forbundet" disconnected = "afbrudt" ready = "parat" -vehicleTarget = "Køretøjsgrænse: {soc}%" +vehicleLimit = "Køretøjsgrænse: {soc}%" [main.vehicleStatus] charging = "Oplader..." @@ -374,7 +374,7 @@ targetChargeActive = "Målladning aktiv..." targetChargePlanned = "Målopladning starter kl. {time}." targetChargeWaitForVehicle = "Målladning klar. Venter på køretøj..." unknown = "" -vehicleTargetReached = "Køretøjsgrænsen {soc} % nået." +vehicleLimitReached = "Køretøjsgrænsen {soc} % nået." waitForVehicle = "Parat. Venter på køretøj ..." [notifications] diff --git a/i18n/de.toml b/i18n/de.toml index 3880e94e07..a06004b552 100644 --- a/i18n/de.toml +++ b/i18n/de.toml @@ -346,7 +346,7 @@ charging = "lädt" connected = "verbunden" disconnected = "getrennt" ready = "bereit" -vehicleTarget = "Fahrzeuglimit: {soc}%" +vehicleLimit = "Fahrzeuglimit: {soc}%" [main.vehicleStatus] charging = "Ladevorgang aktiv …" @@ -364,7 +364,7 @@ targetChargeActive = "Zielladen aktiv …" targetChargePlanned = "Zielladen geplant. Ladung startet {time} Uhr." targetChargeWaitForVehicle = "Zielladen bereit. Warte auf Fahrzeug …" unknown = "" -vehicleTargetReached = "Fahrzeuglimit {soc}% erreicht." +vehicleLimitReached = "Fahrzeuglimit {soc}% erreicht." waitForVehicle = "Ladebereit. Warte auf Fahrzeug …" [notifications] diff --git a/i18n/en.toml b/i18n/en.toml index e67191163e..7623f011e2 100644 --- a/i18n/en.toml +++ b/i18n/en.toml @@ -343,7 +343,7 @@ charging = "charging" connected = "connected" disconnected = "disconnected" ready = "ready" -vehicleTarget = "Vehicle limit: {soc}%" +vehicleLimit = "Vehicle limit: {soc}%" [main.vehicleStatus] charging = "Charging…" @@ -361,7 +361,7 @@ targetChargeActive = "Target charge active…" targetChargePlanned = "Target charging starts at {time}." targetChargeWaitForVehicle = "Target charge ready. Waiting for vehicle…" unknown = "" -vehicleTargetReached = "Vehicle limit {soc}% reached." +vehicleLimitReached = "Vehicle limit {soc}% reached." waitForVehicle = "Ready. Waiting for vehicle…" [notifications] diff --git a/i18n/es.toml b/i18n/es.toml index fe4c59e20f..49b1eef45e 100644 --- a/i18n/es.toml +++ b/i18n/es.toml @@ -361,7 +361,7 @@ charging = "cargando" connected = "conectado" disconnected = "desconectado" ready = "preparado" -vehicleTarget = "límite de vehículo: {soc}%" +vehicleLimit = "límite de vehículo: {soc}%" [main.vehicleStatus] charging = "Cargando ..." @@ -379,7 +379,7 @@ targetChargeActive = "Carga objetivo activa..." targetChargePlanned = "La carga objetivo empieza en {time}." targetChargeWaitForVehicle = "Carga de destino lista. Esperar vehículo." unknown = "" -vehicleTargetReached = "Límite de vehículo {soc}% alcanzado." +vehicleLimitReached = "Límite de vehículo {soc}% alcanzado." waitForVehicle = "Listo para cargar. Esperando vehículo." [notifications] diff --git a/i18n/fi.toml b/i18n/fi.toml index 1ff0c9fc63..34a4094931 100644 --- a/i18n/fi.toml +++ b/i18n/fi.toml @@ -273,7 +273,7 @@ charging = "lataa" connected = "yhdistetty" disconnected = "irroitettu" ready = "valmis" -vehicleTarget = "Ajoneuvon raja {soc}%" +vehicleLimit = "Ajoneuvon raja {soc}%" [main.vehicleStatus] charging = "Lataa…" @@ -291,7 +291,7 @@ targetChargeActive = "Lataaminen käynnissä…" targetChargePlanned = "Lataaminen alkaa {time}." targetChargeWaitForVehicle = "Tavoite lataus valmis. Odotetaan ajoneuvoa…" unknown = "" -vehicleTargetReached = "Ajoneuvon raja {soc}% saavutettu." +vehicleLimitReached = "Ajoneuvon raja {soc}% saavutettu." waitForVehicle = "Valmiina. Odotetaan ajoneuvoa…" [notifications] diff --git a/i18n/fr.toml b/i18n/fr.toml index 62e38d917e..5dc65ad5fe 100644 --- a/i18n/fr.toml +++ b/i18n/fr.toml @@ -358,7 +358,7 @@ charging = "en charge" connected = "connecté" disconnected = "déconnecté" ready = "prêt" -vehicleTarget = "Limite du véhicule : {soc}%" +vehicleLimit = "Limite du véhicule : {soc}%" [main.vehicleStatus] charging = "En charge..." @@ -376,7 +376,7 @@ targetChargeActive = "Charge cible active..." targetChargePlanned = "La charge cible démarre à {time}." targetChargeWaitForVehicle = "Charge cible prête. Attente du véhicule..." unknown = "" -vehicleTargetReached = "Limite de véhicule {soc}% atteinte." +vehicleLimitReached = "Limite de véhicule {soc}% atteinte." waitForVehicle = "Prêt à charger. Attente du véhicule…" [notifications] diff --git a/i18n/hr.toml b/i18n/hr.toml index e09076a028..2d45760672 100644 --- a/i18n/hr.toml +++ b/i18n/hr.toml @@ -303,7 +303,7 @@ charging = "napajanje" connected = "povezano" disconnected = "odspojeno" ready = "spremno" -vehicleTarget = "Ograničenje vozila: {soc} %" +vehicleLimit = "Ograničenje vozila: {soc} %" [main.vehicleStatus] charging = "Napajanje …" @@ -321,7 +321,7 @@ targetChargeActive = "Ciljano napajanje je aktivno …" targetChargePlanned = "Ciljano napajanje počinje u {time}." targetChargeWaitForVehicle = "Ciljano napajanje je spremno. Čeka se na vozilo …" unknown = "" -vehicleTargetReached = "Ograničenje vozila od {soc} % dosegnuto." +vehicleLimitReached = "Ograničenje vozila od {soc} % dosegnuto." waitForVehicle = "Spremno. Čeka se na vozilo …" [notifications] diff --git a/i18n/it.toml b/i18n/it.toml index f4e179b5a5..9481668405 100644 --- a/i18n/it.toml +++ b/i18n/it.toml @@ -178,7 +178,7 @@ charging = "In carica" connected = "collegato" disconnected = "disconnesso" ready = "pronto" -vehicleTarget = "Limite veicolo: {soc}%" +vehicleLimit = "Limite veicolo: {soc}%" [main.vehicleStatus] charging = "In carica..." @@ -193,7 +193,7 @@ targetChargeActive = "Carica target attiva..." targetChargePlanned = "Il target di ricarica inizia alle {time}." targetChargeWaitForVehicle = "Carica target pronta. In attesa del veicolo..." unknown = "" -vehicleTargetReached = "Limite del veicolo {soc}% raggiunto." +vehicleLimitReached = "Limite del veicolo {soc}% raggiunto." waitForVehicle = "Pronto. In attesa del veicolo..." [notifications] diff --git a/i18n/lb.toml b/i18n/lb.toml index f379aa0e99..66d10a24af 100644 --- a/i18n/lb.toml +++ b/i18n/lb.toml @@ -169,7 +169,7 @@ charging = "oplueden" connected = "verbonne" disconnected = "deconnectéiert" ready = "bereet" -vehicleTarget = "Gefier Limite: {soc}%" +vehicleLimit = "Gefier Limite: {soc}%" [main.vehicleStatus] charging = "Laden ..." @@ -184,7 +184,7 @@ targetChargeActive = "Zilladung aktiv ..." targetChargePlanned = "Zilladung fänkt um {time} un." targetChargeWaitForVehicle = "Ziel Charge prett. Waart op Gefier ..." unknown = "" -vehicleTargetReached = "Gefier Limit {soc}% erreecht." +vehicleLimitReached = "Gefier Limit {soc}% erreecht." waitForVehicle = "Prett. Waart op Gefier ..." [notifications] diff --git a/i18n/lt.toml b/i18n/lt.toml index 6e434c7b32..159356a53b 100644 --- a/i18n/lt.toml +++ b/i18n/lt.toml @@ -361,7 +361,7 @@ charging = "vyksta įkrovimas" connected = "automobilis prijungtas" disconnected = "neprijungtas" ready = "leidžiama įkrauti" -vehicleTarget = "Automobilyje nustatytas limitas: {soc}%" +vehicleLimit = "Automobilyje nustatytas limitas: {soc}%" [main.vehicleStatus] charging = "Įkraunama..." @@ -379,7 +379,7 @@ targetChargeActive = "Planinis įkrovimas aktyvuotas..." targetChargePlanned = "Planinis įkrovimas prasidės {time}." targetChargeWaitForVehicle = "Planinis įkrovimas leidžiamas. Laukiama automobilio signalo..." unknown = "" -vehicleTargetReached = "Automobilyje nustatytas limitas {soc}% pasiektas." +vehicleLimitReached = "Automobilyje nustatytas limitas {soc}% pasiektas." waitForVehicle = "Paruošta. Laukiama automobilio..." [notifications] diff --git a/i18n/nl.toml b/i18n/nl.toml index 3bcb977ac9..6ef07d841a 100644 --- a/i18n/nl.toml +++ b/i18n/nl.toml @@ -358,7 +358,7 @@ charging = "laden" connected = "aangesloten" disconnected = "niet aangesloten" ready = "klaar" -vehicleTarget = "Voertuiglimiet: {soc}%" +vehicleLimit = "Voertuiglimiet: {soc}%" [main.vehicleStatus] charging = "Opladen..." @@ -376,7 +376,7 @@ targetChargeActive = "Doelladen actief..." targetChargePlanned = "Doelladen begint om {time}." targetChargeWaitForVehicle = "Doellading gereed. Wachten op voertuig..." unknown = "" -vehicleTargetReached = "Voertuiglimiet {soc}% bereikt." +vehicleLimitReached = "Voertuiglimiet {soc}% bereikt." waitForVehicle = "Klaar. Wachten op voertuig..." [notifications] diff --git a/i18n/no.toml b/i18n/no.toml index d39350b429..b8f0c0ef00 100644 --- a/i18n/no.toml +++ b/i18n/no.toml @@ -264,7 +264,7 @@ charging = "lader" connected = "tilkoblet" disconnected = "frakoblet" ready = "klar" -vehicleTarget = "Kjøretøygrense: {soc}%" +vehicleLimit = "Kjøretøygrense: {soc}%" [main.vehicleStatus] charging = "Lading..." @@ -282,7 +282,7 @@ targetChargeActive = "Målladning aktiv ..." targetChargePlanned = "Mållading starter på {time}." targetChargeWaitForVehicle = "Mållading klar. Venter på kjøretøy..." unknown = "ukjent" -vehicleTargetReached = "Kjøretøygrense på {soc}% nådd." +vehicleLimitReached = "Kjøretøygrense på {soc}% nådd." waitForVehicle = "Klar. Venter på kjøretøy..." [notifications] diff --git a/i18n/pl.toml b/i18n/pl.toml index c0c1b6a01c..c5a70497a8 100644 --- a/i18n/pl.toml +++ b/i18n/pl.toml @@ -359,7 +359,7 @@ charging = "ładuje się" connected = "połączony" disconnected = "odłączony" ready = "gotowy" -vehicleTarget = "Limit pojazdu: {soc}%" +vehicleLimit = "Limit pojazdu: {soc}%" [main.vehicleStatus] charging = "Ładuje się..." @@ -377,7 +377,7 @@ targetChargeActive = "Zaplanowane ładowanie aktywno..." targetChargePlanned = "Zaplanowane ładowanie zacznie się {time}." targetChargeWaitForVehicle = "Zaplanowane ładowanie. Czekajem na pojazd..." unknown = "" -vehicleTargetReached = "Osiągnięto limit pojazdu {soc}%." +vehicleLimitReached = "Osiągnięto limit pojazdu {soc}%." waitForVehicle = "Gotowe. Czekam na pojazd..." [notifications] diff --git a/i18n/pt.toml b/i18n/pt.toml index 263f7292a3..4ff60b1bfd 100644 --- a/i18n/pt.toml +++ b/i18n/pt.toml @@ -303,7 +303,7 @@ charging = "carregando" connected = "ligado" disconnected = "separado" ready = "esperando" -vehicleTarget = "Limite de veículo: {soc}%" +vehicleLimit = "Limite de veículo: {soc}%" [main.vehicleStatus] charging = "Carregando..." @@ -321,7 +321,7 @@ targetChargeActive = "Carga programada ativa..." targetChargePlanned = "Carga programada começa {time}." targetChargeWaitForVehicle = "Carga programada pronta. Esperando pelo veículo..." unknown = "" -vehicleTargetReached = "Limite de veículo {soc}% atingido." +vehicleLimitReached = "Limite de veículo {soc}% atingido." waitForVehicle = "Pronto. Esperando pelo veículo..." [notifications] diff --git a/i18n/ro.toml b/i18n/ro.toml index dbd72fbf26..ef480a3552 100644 --- a/i18n/ro.toml +++ b/i18n/ro.toml @@ -348,7 +348,7 @@ charging = "încarcă" connected = "conectat" disconnected = "deconectat" ready = "pregătit" -vehicleTarget = "Limită vehicul: {soc}%" +vehicleLimit = "Limită vehicul: {soc}%" [main.vehicleStatus] charging = "Încarcă…" @@ -367,7 +367,7 @@ targetChargeActive = "Încarcare țintă activă…" targetChargePlanned = "Încărcarea pornește la {time}." targetChargeWaitForVehicle = "Încărcare terminată. Aștept după vehicul…" unknown = "" -vehicleTargetReached = "Limita {soc}% a fost atinsă." +vehicleLimitReached = "Limita {soc}% a fost atinsă." waitForVehicle = "Pregătit. Aștept după vehicul…" [notifications] diff --git a/i18n/sl.toml b/i18n/sl.toml index 6c1182d061..a87b83473f 100644 --- a/i18n/sl.toml +++ b/i18n/sl.toml @@ -348,7 +348,7 @@ charging = "polnjenje" connected = "povezan" disconnected = "odklopljen" ready = "pripravljen" -vehicleTarget = "Omejitev vozila: {soc}%" +vehicleLimit = "Omejitev vozila: {soc}%" [main.vehicleStatus] charging = "Polnjenje…" @@ -367,7 +367,7 @@ targetChargeActive = "Ciljno polnjenje je aktivno..." targetChargePlanned = "Ciljno polnjenje se začne ob {time}." targetChargeWaitForVehicle = "Ciljno polnjenje je pripravljeno. Čakam na vozilo ..." unknown = "" -vehicleTargetReached = "Omejitev vozila {soc}% dosežena." +vehicleLimitReached = "Omejitev vozila {soc}% dosežena." waitForVehicle = "Pripravljen. Čakam na vozilo..." [notifications] diff --git a/i18n/sv.toml b/i18n/sv.toml index fd11620540..138cdb4fd7 100644 --- a/i18n/sv.toml +++ b/i18n/sv.toml @@ -355,7 +355,7 @@ charging = "laddar" connected = "ansluten" disconnected = "frånkopplad" ready = "redo" -vehicleTarget = "Fordonsgräns: {soc}%" +vehicleLimit = "Fordonsgräns: {soc}%" [main.vehicleStatus] charging = "Laddar..." @@ -373,7 +373,7 @@ targetChargeActive = "Målladdning aktiv..." targetChargePlanned = "Målladdning startar {time}." targetChargeWaitForVehicle = "Laddare beredd. Väntar på fordon..." unknown = "" -vehicleTargetReached = "Fordonsgränsen {soc}% nådd." +vehicleLimitReached = "Fordonsgränsen {soc}% nådd." waitForVehicle = "Redo. Väntar på fordon..." [notifications] diff --git a/i18n/uk.toml b/i18n/uk.toml index c562f5c857..667f5a1f60 100644 --- a/i18n/uk.toml +++ b/i18n/uk.toml @@ -326,7 +326,7 @@ charging = "зарядка" connected = "підключено" disconnected = "відключено" ready = "готовий" -vehicleTarget = "Ліміт транспортного засобу: {soc}%" +vehicleLimit = "Ліміт транспортного засобу: {soc}%" [main.vehicleStatus] charging = "Зарядка…" @@ -344,7 +344,7 @@ targetChargeActive = "Запланований заряд активний…" targetChargePlanned = "Запланована зарядка починається о {time}." targetChargeWaitForVehicle = "Запланований заряд готовий. В очікуванні транспортного засобу..." unknown = "" -vehicleTargetReached = "Ліміт транспортного засобу {soc}% досягнуто." +vehicleLimitReached = "Ліміт транспортного засобу {soc}% досягнуто." waitForVehicle = "Готовий. В очікуванні транспортного засобу..." [notifications] diff --git a/i18n/zh-Hans.toml b/i18n/zh-Hans.toml index f9ca2115b3..708700eaba 100644 --- a/i18n/zh-Hans.toml +++ b/i18n/zh-Hans.toml @@ -271,7 +271,7 @@ charging = "充电中" connected = "已连接" disconnected = "已断开" ready = "就绪" -vehicleTarget = "车辆限制: {soc}%" +vehicleLimit = "车辆限制: {soc}%" [main.vehicleStatus] charging = "充电中…" @@ -290,7 +290,7 @@ targetChargeActive = "目标充电激活…" targetChargePlanned = "目标充电从 {time}开始." targetChargeWaitForVehicle = "目标充电准备就绪. 等车…" unknown = "" -vehicleTargetReached = "达到车辆限制 {soc}% ." +vehicleLimitReached = "达到车辆限制 {soc}% ." waitForVehicle = "准备好了. 等车…" [notifications] diff --git a/server/http_config_helper.go b/server/http_config_helper.go index 936cc3fc3f..bc87cc2cb7 100644 --- a/server/http_config_helper.go +++ b/server/http_config_helper.go @@ -182,7 +182,7 @@ func testInstance(instance any) map[string]testResult { } if dev, ok := instance.(api.SocLimiter); ok { - val, err := dev.TargetSoc() + val, err := dev.GetLimitSoc() res["socLimit"] = makeResult(val, err) } diff --git a/vehicle/bluelink/provider.go b/vehicle/bluelink/provider.go index f0cb97a868..4b5ddb18d0 100644 --- a/vehicle/bluelink/provider.go +++ b/vehicle/bluelink/provider.go @@ -171,14 +171,14 @@ func (v *Provider) Odometer() (float64, error) { var _ api.SocLimiter = (*Provider)(nil) -// TargetSoc implements the api.SocLimiter interface -func (v *Provider) TargetSoc() (float64, error) { +// GetLimitSoc implements the api.SocLimiter interface +func (v *Provider) GetLimitSoc() (int64, error) { res, err := v.statusG() if err == nil { for _, targetSOC := range res.EvStatus.ReservChargeInfos.TargetSocList { if targetSOC.PlugType == plugTypeAC { - return float64(targetSOC.TargetSocLevel), nil + return int64(targetSOC.TargetSocLevel), nil } } } diff --git a/vehicle/saic/provider.go b/vehicle/saic/provider.go index 54874ff3a9..8c9123e70c 100644 --- a/vehicle/saic/provider.go +++ b/vehicle/saic/provider.go @@ -125,9 +125,9 @@ func (v *Provider) Odometer() (float64, error) { var _ api.SocLimiter = (*Provider)(nil) -// TargetSoc implements the api.SocLimiter interface -func (v *Provider) TargetSoc() (float64, error) { - var result = 0 +// GetLimitSoc implements the api.SocLimiter interface +func (v *Provider) GetLimitSoc() (int64, error) { + result := 0 res, err := v.status.Get() if err != nil { return 0, err @@ -139,7 +139,7 @@ func (v *Provider) TargetSoc() (float64, error) { result = TargetSocVals[res.ChrgMgmtData.BmsOnBdChrgTrgtSOCDspCmd] } - return float64(result), err + return int64(result), err } var _ api.Resurrector = (*Provider)(nil) diff --git a/vehicle/seat/cupra/provider.go b/vehicle/seat/cupra/provider.go index eaf75bcd95..404d216687 100644 --- a/vehicle/seat/cupra/provider.go +++ b/vehicle/seat/cupra/provider.go @@ -102,10 +102,10 @@ func (v *Provider) Climater() (bool, error) { var _ api.SocLimiter = (*Provider)(nil) -// TargetSoc implements the api.SocLimiter interface -func (v *Provider) TargetSoc() (float64, error) { +// GetLimitSoc implements the api.SocLimiter interface +func (v *Provider) GetLimitSoc() (int64, error) { res, err := v.statusG() - return float64(res.Services.Charging.TargetPct), err + return int64(res.Services.Charging.TargetPct), err } var _ api.ChargeController = (*Provider)(nil) diff --git a/vehicle/skoda/provider.go b/vehicle/skoda/provider.go index 9b42ca0ccd..920ac8ac2a 100644 --- a/vehicle/skoda/provider.go +++ b/vehicle/skoda/provider.go @@ -127,11 +127,11 @@ func (v *Provider) Odometer() (odo float64, err error) { var _ api.SocLimiter = (*Provider)(nil) -// TargetSoc implements the api.SocLimiter interface -func (v *Provider) TargetSoc() (float64, error) { +// GetLimitSoc implements the api.SocLimiter interface +func (v *Provider) GetLimitSoc() (int64, error) { res, err := v.settingsG() if err == nil { - return float64(res.TargetStateOfChargeInPercent), nil + return int64(res.TargetStateOfChargeInPercent), nil } return 0, err diff --git a/vehicle/tesla/provider.go b/vehicle/tesla/provider.go index 651a7c5c6c..df4916676d 100644 --- a/vehicle/tesla/provider.go +++ b/vehicle/tesla/provider.go @@ -122,13 +122,13 @@ func (v *Provider) FinishTime() (time.Time, error) { var _ api.SocLimiter = (*Provider)(nil) -// TargetSoc implements the api.SocLimiter interface -func (v *Provider) TargetSoc() (float64, error) { +// GetLimitSoc implements the api.SocLimiter interface +func (v *Provider) GetLimitSoc() (int64, error) { res, err := v.dataG() if err != nil { return 0, err } - return float64(res.Response.ChargeState.ChargeLimitSoc), nil + return int64(res.Response.ChargeState.ChargeLimitSoc), nil } var _ api.Resurrector = (*Provider)(nil) diff --git a/vehicle/vehicle.go b/vehicle/vehicle.go index b4caa3ae76..47d3d42144 100644 --- a/vehicle/vehicle.go +++ b/vehicle/vehicle.go @@ -8,7 +8,7 @@ import ( "github.com/evcc-io/evcc/util" ) -//go:generate go run ../cmd/tools/decorate.go -f decorateVehicle -b api.Vehicle -t "api.ChargeState,Status,func() (api.ChargeStatus, error)" -t "api.VehicleRange,Range,func() (int64, error)" -t "api.VehicleOdometer,Odometer,func() (float64, error)" -t "api.VehicleClimater,Climater,func() (bool, error)" -t "api.CurrentController,MaxCurrent,func(int64) error" -t "api.Resurrector,WakeUp,func() error" -t "api.ChargeController,ChargeEnable,func(bool) error" +//go:generate go run ../cmd/tools/decorate.go -f decorateVehicle -b api.Vehicle -t "api.SocLimiter,GetLimitSoc,func() (int64, error)" -t "api.ChargeState,Status,func() (api.ChargeStatus, error)" -t "api.VehicleRange,Range,func() (int64, error)" -t "api.VehicleOdometer,Odometer,func() (float64, error)" -t "api.VehicleClimater,Climater,func() (bool, error)" -t "api.CurrentController,MaxCurrent,func(int64) error" -t "api.Resurrector,WakeUp,func() error" -t "api.ChargeController,ChargeEnable,func(bool) error" // Vehicle is an api.Vehicle implementation with configurable getters and setters. type Vehicle struct { @@ -25,6 +25,7 @@ func NewConfigurableFromConfig(other map[string]interface{}) (api.Vehicle, error var cc struct { embed `mapstructure:",squash"` Soc provider.Config + LimitSoc *provider.Config Status *provider.Config Range *provider.Config Odometer *provider.Config @@ -48,15 +49,24 @@ func NewConfigurableFromConfig(other map[string]interface{}) (api.Vehicle, error socG: socG, } + // decorate range + var limitSoc func() (int64, error) + if cc.LimitSoc != nil { + limitSoc, err = provider.NewIntGetterFromConfig(*cc.LimitSoc) + if err != nil { + return nil, fmt.Errorf("limitSoc: %w", err) + } + } + // decorate status var status func() (api.ChargeStatus, error) if cc.Status != nil { - statusG, err := provider.NewStringGetterFromConfig(*cc.Status) + get, err := provider.NewStringGetterFromConfig(*cc.Status) if err != nil { return nil, fmt.Errorf("status: %w", err) } status = func() (api.ChargeStatus, error) { - s, err := statusG() + s, err := get() if err != nil { return api.StatusNone, err } @@ -67,52 +77,48 @@ func NewConfigurableFromConfig(other map[string]interface{}) (api.Vehicle, error // decorate range var rng func() (int64, error) if cc.Range != nil { - rangeG, err := provider.NewIntGetterFromConfig(*cc.Range) + rng, err = provider.NewIntGetterFromConfig(*cc.Range) if err != nil { return nil, fmt.Errorf("range: %w", err) } - rng = rangeG } // decorate odometer var odo func() (float64, error) if cc.Odometer != nil { - odoG, err := provider.NewFloatGetterFromConfig(*cc.Odometer) + odo, err = provider.NewFloatGetterFromConfig(*cc.Odometer) if err != nil { return nil, fmt.Errorf("odometer: %w", err) } - odo = odoG } // decorate climater var climater func() (bool, error) if cc.Climater != nil { - climateG, err := provider.NewBoolGetterFromConfig(*cc.Climater) + climater, err = provider.NewBoolGetterFromConfig(*cc.Climater) if err != nil { return nil, fmt.Errorf("climater: %w", err) } - climater = climateG } // decorate maxCurrent var maxCurrent func(int64) error if cc.MaxCurrent != nil { - maxCurrentS, err := provider.NewIntSetterFromConfig("maxCurrent", *cc.MaxCurrent) + maxCurrent, err = provider.NewIntSetterFromConfig("maxCurrent", *cc.MaxCurrent) if err != nil { return nil, fmt.Errorf("maxCurrent: %w", err) } - maxCurrent = maxCurrentS } // decorate wakeup var wakeup func() error if cc.Wakeup != nil { - wakeupS, err := provider.NewBoolSetterFromConfig("wakeup", *cc.Wakeup) + set, err := provider.NewBoolSetterFromConfig("wakeup", *cc.Wakeup) if err != nil { return nil, fmt.Errorf("wakeup: %w", err) } wakeup = func() error { - return wakeupS(true) + return set(true) } } @@ -125,7 +131,7 @@ func NewConfigurableFromConfig(other map[string]interface{}) (api.Vehicle, error } } - return decorateVehicle(v, status, rng, odo, climater, maxCurrent, wakeup, chargeEnable), nil + return decorateVehicle(v, limitSoc, status, rng, odo, climater, maxCurrent, wakeup, chargeEnable), nil } // Soc implements the api.Vehicle interface diff --git a/vehicle/vehicle_decorators.go b/vehicle/vehicle_decorators.go index e61c9b648d..16be409704 100644 --- a/vehicle/vehicle_decorators.go +++ b/vehicle/vehicle_decorators.go @@ -6,212 +6,212 @@ import ( "github.com/evcc-io/evcc/api" ) -func decorateVehicle(base api.Vehicle, chargeState func() (api.ChargeStatus, error), vehicleRange func() (int64, error), vehicleOdometer func() (float64, error), vehicleClimater func() (bool, error), currentController func(int64) error, resurrector func() error, chargeController func(bool) error) api.Vehicle { +func decorateVehicle(base api.Vehicle, socLimiter func() (int64, error), chargeState func() (api.ChargeStatus, error), vehicleRange func() (int64, error), vehicleOdometer func() (float64, error), vehicleClimater func() (bool, error), currentController func(int64) error, resurrector func() error, chargeController func(bool) error) api.Vehicle { switch { - case chargeController == nil && chargeState == nil && currentController == nil && resurrector == nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange == nil: + case chargeController == nil && chargeState == nil && currentController == nil && resurrector == nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange == nil: return base - case chargeController == nil && chargeState != nil && currentController == nil && resurrector == nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange == nil: + case chargeController == nil && chargeState == nil && currentController == nil && resurrector == nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange == nil: return &struct { api.Vehicle - api.ChargeState + api.SocLimiter }{ Vehicle: base, - ChargeState: &decorateVehicleChargeStateImpl{ - chargeState: chargeState, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, }, } - case chargeController == nil && chargeState == nil && currentController == nil && resurrector == nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange != nil: + case chargeController == nil && chargeState != nil && currentController == nil && resurrector == nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange == nil: return &struct { api.Vehicle - api.VehicleRange + api.ChargeState }{ Vehicle: base, - VehicleRange: &decorateVehicleVehicleRangeImpl{ - vehicleRange: vehicleRange, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, }, } - case chargeController == nil && chargeState != nil && currentController == nil && resurrector == nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange != nil: + case chargeController == nil && chargeState != nil && currentController == nil && resurrector == nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange == nil: return &struct { api.Vehicle api.ChargeState - api.VehicleRange + api.SocLimiter }{ Vehicle: base, ChargeState: &decorateVehicleChargeStateImpl{ chargeState: chargeState, }, - VehicleRange: &decorateVehicleVehicleRangeImpl{ - vehicleRange: vehicleRange, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, }, } - case chargeController == nil && chargeState == nil && currentController == nil && resurrector == nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange == nil: + case chargeController == nil && chargeState == nil && currentController == nil && resurrector == nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange != nil: return &struct { api.Vehicle - api.VehicleOdometer + api.VehicleRange }{ Vehicle: base, - VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ - vehicleOdometer: vehicleOdometer, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, }, } - case chargeController == nil && chargeState != nil && currentController == nil && resurrector == nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange == nil: + case chargeController == nil && chargeState == nil && currentController == nil && resurrector == nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange != nil: return &struct { api.Vehicle - api.ChargeState - api.VehicleOdometer + api.SocLimiter + api.VehicleRange }{ Vehicle: base, - ChargeState: &decorateVehicleChargeStateImpl{ - chargeState: chargeState, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, }, - VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ - vehicleOdometer: vehicleOdometer, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, }, } - case chargeController == nil && chargeState == nil && currentController == nil && resurrector == nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange != nil: + case chargeController == nil && chargeState != nil && currentController == nil && resurrector == nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange != nil: return &struct { api.Vehicle - api.VehicleOdometer + api.ChargeState api.VehicleRange }{ Vehicle: base, - VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ - vehicleOdometer: vehicleOdometer, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, }, VehicleRange: &decorateVehicleVehicleRangeImpl{ vehicleRange: vehicleRange, }, } - case chargeController == nil && chargeState != nil && currentController == nil && resurrector == nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange != nil: + case chargeController == nil && chargeState != nil && currentController == nil && resurrector == nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange != nil: return &struct { api.Vehicle api.ChargeState - api.VehicleOdometer + api.SocLimiter api.VehicleRange }{ Vehicle: base, ChargeState: &decorateVehicleChargeStateImpl{ chargeState: chargeState, }, - VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ - vehicleOdometer: vehicleOdometer, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, }, VehicleRange: &decorateVehicleVehicleRangeImpl{ vehicleRange: vehicleRange, }, } - case chargeController == nil && chargeState == nil && currentController == nil && resurrector == nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange == nil: + case chargeController == nil && chargeState == nil && currentController == nil && resurrector == nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange == nil: return &struct { api.Vehicle - api.VehicleClimater + api.VehicleOdometer }{ Vehicle: base, - VehicleClimater: &decorateVehicleVehicleClimaterImpl{ - vehicleClimater: vehicleClimater, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, }, } - case chargeController == nil && chargeState != nil && currentController == nil && resurrector == nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange == nil: + case chargeController == nil && chargeState == nil && currentController == nil && resurrector == nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange == nil: return &struct { api.Vehicle - api.ChargeState - api.VehicleClimater + api.SocLimiter + api.VehicleOdometer }{ Vehicle: base, - ChargeState: &decorateVehicleChargeStateImpl{ - chargeState: chargeState, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, }, - VehicleClimater: &decorateVehicleVehicleClimaterImpl{ - vehicleClimater: vehicleClimater, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, }, } - case chargeController == nil && chargeState == nil && currentController == nil && resurrector == nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange != nil: + case chargeController == nil && chargeState != nil && currentController == nil && resurrector == nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange == nil: return &struct { api.Vehicle - api.VehicleClimater - api.VehicleRange + api.ChargeState + api.VehicleOdometer }{ Vehicle: base, - VehicleClimater: &decorateVehicleVehicleClimaterImpl{ - vehicleClimater: vehicleClimater, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, }, - VehicleRange: &decorateVehicleVehicleRangeImpl{ - vehicleRange: vehicleRange, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, }, } - case chargeController == nil && chargeState != nil && currentController == nil && resurrector == nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange != nil: + case chargeController == nil && chargeState != nil && currentController == nil && resurrector == nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange == nil: return &struct { api.Vehicle api.ChargeState - api.VehicleClimater - api.VehicleRange + api.SocLimiter + api.VehicleOdometer }{ Vehicle: base, ChargeState: &decorateVehicleChargeStateImpl{ chargeState: chargeState, }, - VehicleClimater: &decorateVehicleVehicleClimaterImpl{ - vehicleClimater: vehicleClimater, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, }, - VehicleRange: &decorateVehicleVehicleRangeImpl{ - vehicleRange: vehicleRange, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, }, } - case chargeController == nil && chargeState == nil && currentController == nil && resurrector == nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange == nil: + case chargeController == nil && chargeState == nil && currentController == nil && resurrector == nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange != nil: return &struct { api.Vehicle - api.VehicleClimater api.VehicleOdometer + api.VehicleRange }{ Vehicle: base, - VehicleClimater: &decorateVehicleVehicleClimaterImpl{ - vehicleClimater: vehicleClimater, - }, VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ vehicleOdometer: vehicleOdometer, }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, } - case chargeController == nil && chargeState != nil && currentController == nil && resurrector == nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange == nil: + case chargeController == nil && chargeState == nil && currentController == nil && resurrector == nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange != nil: return &struct { api.Vehicle - api.ChargeState - api.VehicleClimater + api.SocLimiter api.VehicleOdometer + api.VehicleRange }{ Vehicle: base, - ChargeState: &decorateVehicleChargeStateImpl{ - chargeState: chargeState, - }, - VehicleClimater: &decorateVehicleVehicleClimaterImpl{ - vehicleClimater: vehicleClimater, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, }, VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ vehicleOdometer: vehicleOdometer, }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, } - case chargeController == nil && chargeState == nil && currentController == nil && resurrector == nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange != nil: + case chargeController == nil && chargeState != nil && currentController == nil && resurrector == nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange != nil: return &struct { api.Vehicle - api.VehicleClimater + api.ChargeState api.VehicleOdometer api.VehicleRange }{ Vehicle: base, - VehicleClimater: &decorateVehicleVehicleClimaterImpl{ - vehicleClimater: vehicleClimater, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, }, VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ vehicleOdometer: vehicleOdometer, @@ -221,11 +221,11 @@ func decorateVehicle(base api.Vehicle, chargeState func() (api.ChargeStatus, err }, } - case chargeController == nil && chargeState != nil && currentController == nil && resurrector == nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange != nil: + case chargeController == nil && chargeState != nil && currentController == nil && resurrector == nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange != nil: return &struct { api.Vehicle api.ChargeState - api.VehicleClimater + api.SocLimiter api.VehicleOdometer api.VehicleRange }{ @@ -233,8 +233,8 @@ func decorateVehicle(base api.Vehicle, chargeState func() (api.ChargeStatus, err ChargeState: &decorateVehicleChargeStateImpl{ chargeState: chargeState, }, - VehicleClimater: &decorateVehicleVehicleClimaterImpl{ - vehicleClimater: vehicleClimater, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, }, VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ vehicleOdometer: vehicleOdometer, @@ -244,251 +244,248 @@ func decorateVehicle(base api.Vehicle, chargeState func() (api.ChargeStatus, err }, } - case chargeController == nil && chargeState == nil && currentController != nil && resurrector == nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange == nil: + case chargeController == nil && chargeState == nil && currentController == nil && resurrector == nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange == nil: return &struct { api.Vehicle - api.CurrentController + api.VehicleClimater }{ Vehicle: base, - CurrentController: &decorateVehicleCurrentControllerImpl{ - currentController: currentController, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, }, } - case chargeController == nil && chargeState != nil && currentController != nil && resurrector == nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange == nil: + case chargeController == nil && chargeState == nil && currentController == nil && resurrector == nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange == nil: return &struct { api.Vehicle - api.ChargeState - api.CurrentController + api.SocLimiter + api.VehicleClimater }{ Vehicle: base, - ChargeState: &decorateVehicleChargeStateImpl{ - chargeState: chargeState, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, }, - CurrentController: &decorateVehicleCurrentControllerImpl{ - currentController: currentController, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, }, } - case chargeController == nil && chargeState == nil && currentController != nil && resurrector == nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange != nil: + case chargeController == nil && chargeState != nil && currentController == nil && resurrector == nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange == nil: return &struct { api.Vehicle - api.CurrentController - api.VehicleRange + api.ChargeState + api.VehicleClimater }{ Vehicle: base, - CurrentController: &decorateVehicleCurrentControllerImpl{ - currentController: currentController, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, }, - VehicleRange: &decorateVehicleVehicleRangeImpl{ - vehicleRange: vehicleRange, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, }, } - case chargeController == nil && chargeState != nil && currentController != nil && resurrector == nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange != nil: + case chargeController == nil && chargeState != nil && currentController == nil && resurrector == nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange == nil: return &struct { api.Vehicle api.ChargeState - api.CurrentController - api.VehicleRange + api.SocLimiter + api.VehicleClimater }{ Vehicle: base, ChargeState: &decorateVehicleChargeStateImpl{ chargeState: chargeState, }, - CurrentController: &decorateVehicleCurrentControllerImpl{ - currentController: currentController, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, }, - VehicleRange: &decorateVehicleVehicleRangeImpl{ - vehicleRange: vehicleRange, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, }, } - case chargeController == nil && chargeState == nil && currentController != nil && resurrector == nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange == nil: + case chargeController == nil && chargeState == nil && currentController == nil && resurrector == nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange != nil: return &struct { api.Vehicle - api.CurrentController - api.VehicleOdometer + api.VehicleClimater + api.VehicleRange }{ Vehicle: base, - CurrentController: &decorateVehicleCurrentControllerImpl{ - currentController: currentController, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, }, - VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ - vehicleOdometer: vehicleOdometer, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, }, } - case chargeController == nil && chargeState != nil && currentController != nil && resurrector == nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange == nil: + case chargeController == nil && chargeState == nil && currentController == nil && resurrector == nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange != nil: return &struct { api.Vehicle - api.ChargeState - api.CurrentController - api.VehicleOdometer + api.SocLimiter + api.VehicleClimater + api.VehicleRange }{ Vehicle: base, - ChargeState: &decorateVehicleChargeStateImpl{ - chargeState: chargeState, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, }, - CurrentController: &decorateVehicleCurrentControllerImpl{ - currentController: currentController, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, }, - VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ - vehicleOdometer: vehicleOdometer, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, }, } - case chargeController == nil && chargeState == nil && currentController != nil && resurrector == nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange != nil: + case chargeController == nil && chargeState != nil && currentController == nil && resurrector == nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange != nil: return &struct { api.Vehicle - api.CurrentController - api.VehicleOdometer + api.ChargeState + api.VehicleClimater api.VehicleRange }{ Vehicle: base, - CurrentController: &decorateVehicleCurrentControllerImpl{ - currentController: currentController, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, }, - VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ - vehicleOdometer: vehicleOdometer, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, }, VehicleRange: &decorateVehicleVehicleRangeImpl{ vehicleRange: vehicleRange, }, } - case chargeController == nil && chargeState != nil && currentController != nil && resurrector == nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange != nil: + case chargeController == nil && chargeState != nil && currentController == nil && resurrector == nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange != nil: return &struct { api.Vehicle api.ChargeState - api.CurrentController - api.VehicleOdometer + api.SocLimiter + api.VehicleClimater api.VehicleRange }{ Vehicle: base, ChargeState: &decorateVehicleChargeStateImpl{ chargeState: chargeState, }, - CurrentController: &decorateVehicleCurrentControllerImpl{ - currentController: currentController, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, }, - VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ - vehicleOdometer: vehicleOdometer, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, }, VehicleRange: &decorateVehicleVehicleRangeImpl{ vehicleRange: vehicleRange, }, } - case chargeController == nil && chargeState == nil && currentController != nil && resurrector == nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange == nil: + case chargeController == nil && chargeState == nil && currentController == nil && resurrector == nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange == nil: return &struct { api.Vehicle - api.CurrentController api.VehicleClimater + api.VehicleOdometer }{ Vehicle: base, - CurrentController: &decorateVehicleCurrentControllerImpl{ - currentController: currentController, - }, VehicleClimater: &decorateVehicleVehicleClimaterImpl{ vehicleClimater: vehicleClimater, }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, } - case chargeController == nil && chargeState != nil && currentController != nil && resurrector == nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange == nil: + case chargeController == nil && chargeState == nil && currentController == nil && resurrector == nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange == nil: return &struct { api.Vehicle - api.ChargeState - api.CurrentController + api.SocLimiter api.VehicleClimater + api.VehicleOdometer }{ Vehicle: base, - ChargeState: &decorateVehicleChargeStateImpl{ - chargeState: chargeState, - }, - CurrentController: &decorateVehicleCurrentControllerImpl{ - currentController: currentController, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, }, VehicleClimater: &decorateVehicleVehicleClimaterImpl{ vehicleClimater: vehicleClimater, }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, } - case chargeController == nil && chargeState == nil && currentController != nil && resurrector == nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange != nil: + case chargeController == nil && chargeState != nil && currentController == nil && resurrector == nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange == nil: return &struct { api.Vehicle - api.CurrentController + api.ChargeState api.VehicleClimater - api.VehicleRange + api.VehicleOdometer }{ Vehicle: base, - CurrentController: &decorateVehicleCurrentControllerImpl{ - currentController: currentController, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, }, VehicleClimater: &decorateVehicleVehicleClimaterImpl{ vehicleClimater: vehicleClimater, }, - VehicleRange: &decorateVehicleVehicleRangeImpl{ - vehicleRange: vehicleRange, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, }, } - case chargeController == nil && chargeState != nil && currentController != nil && resurrector == nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange != nil: + case chargeController == nil && chargeState != nil && currentController == nil && resurrector == nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange == nil: return &struct { api.Vehicle api.ChargeState - api.CurrentController + api.SocLimiter api.VehicleClimater - api.VehicleRange + api.VehicleOdometer }{ Vehicle: base, ChargeState: &decorateVehicleChargeStateImpl{ chargeState: chargeState, }, - CurrentController: &decorateVehicleCurrentControllerImpl{ - currentController: currentController, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, }, VehicleClimater: &decorateVehicleVehicleClimaterImpl{ vehicleClimater: vehicleClimater, }, - VehicleRange: &decorateVehicleVehicleRangeImpl{ - vehicleRange: vehicleRange, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, }, } - case chargeController == nil && chargeState == nil && currentController != nil && resurrector == nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange == nil: + case chargeController == nil && chargeState == nil && currentController == nil && resurrector == nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange != nil: return &struct { api.Vehicle - api.CurrentController api.VehicleClimater api.VehicleOdometer + api.VehicleRange }{ Vehicle: base, - CurrentController: &decorateVehicleCurrentControllerImpl{ - currentController: currentController, - }, VehicleClimater: &decorateVehicleVehicleClimaterImpl{ vehicleClimater: vehicleClimater, }, VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ vehicleOdometer: vehicleOdometer, }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, } - case chargeController == nil && chargeState != nil && currentController != nil && resurrector == nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange == nil: + case chargeController == nil && chargeState == nil && currentController == nil && resurrector == nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange != nil: return &struct { api.Vehicle - api.ChargeState - api.CurrentController + api.SocLimiter api.VehicleClimater api.VehicleOdometer + api.VehicleRange }{ Vehicle: base, - ChargeState: &decorateVehicleChargeStateImpl{ - chargeState: chargeState, - }, - CurrentController: &decorateVehicleCurrentControllerImpl{ - currentController: currentController, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, }, VehicleClimater: &decorateVehicleVehicleClimaterImpl{ vehicleClimater: vehicleClimater, @@ -496,19 +493,22 @@ func decorateVehicle(base api.Vehicle, chargeState func() (api.ChargeStatus, err VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ vehicleOdometer: vehicleOdometer, }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, } - case chargeController == nil && chargeState == nil && currentController != nil && resurrector == nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange != nil: + case chargeController == nil && chargeState != nil && currentController == nil && resurrector == nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange != nil: return &struct { api.Vehicle - api.CurrentController + api.ChargeState api.VehicleClimater api.VehicleOdometer api.VehicleRange }{ Vehicle: base, - CurrentController: &decorateVehicleCurrentControllerImpl{ - currentController: currentController, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, }, VehicleClimater: &decorateVehicleVehicleClimaterImpl{ vehicleClimater: vehicleClimater, @@ -521,11 +521,11 @@ func decorateVehicle(base api.Vehicle, chargeState func() (api.ChargeStatus, err }, } - case chargeController == nil && chargeState != nil && currentController != nil && resurrector == nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange != nil: + case chargeController == nil && chargeState != nil && currentController == nil && resurrector == nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange != nil: return &struct { api.Vehicle api.ChargeState - api.CurrentController + api.SocLimiter api.VehicleClimater api.VehicleOdometer api.VehicleRange @@ -534,8 +534,8 @@ func decorateVehicle(base api.Vehicle, chargeState func() (api.ChargeStatus, err ChargeState: &decorateVehicleChargeStateImpl{ chargeState: chargeState, }, - CurrentController: &decorateVehicleCurrentControllerImpl{ - currentController: currentController, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, }, VehicleClimater: &decorateVehicleVehicleClimaterImpl{ vehicleClimater: vehicleClimater, @@ -548,274 +548,274 @@ func decorateVehicle(base api.Vehicle, chargeState func() (api.ChargeStatus, err }, } - case chargeController == nil && chargeState == nil && currentController == nil && resurrector != nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange == nil: + case chargeController == nil && chargeState == nil && currentController != nil && resurrector == nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange == nil: return &struct { api.Vehicle - api.Resurrector + api.CurrentController }{ Vehicle: base, - Resurrector: &decorateVehicleResurrectorImpl{ - resurrector: resurrector, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, }, } - case chargeController == nil && chargeState != nil && currentController == nil && resurrector != nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange == nil: + case chargeController == nil && chargeState == nil && currentController != nil && resurrector == nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange == nil: return &struct { api.Vehicle - api.ChargeState - api.Resurrector + api.CurrentController + api.SocLimiter }{ Vehicle: base, - ChargeState: &decorateVehicleChargeStateImpl{ - chargeState: chargeState, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, }, - Resurrector: &decorateVehicleResurrectorImpl{ - resurrector: resurrector, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, }, } - case chargeController == nil && chargeState == nil && currentController == nil && resurrector != nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange != nil: + case chargeController == nil && chargeState != nil && currentController != nil && resurrector == nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange == nil: return &struct { api.Vehicle - api.Resurrector - api.VehicleRange + api.ChargeState + api.CurrentController }{ Vehicle: base, - Resurrector: &decorateVehicleResurrectorImpl{ - resurrector: resurrector, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, }, - VehicleRange: &decorateVehicleVehicleRangeImpl{ - vehicleRange: vehicleRange, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, }, } - case chargeController == nil && chargeState != nil && currentController == nil && resurrector != nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange != nil: + case chargeController == nil && chargeState != nil && currentController != nil && resurrector == nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange == nil: return &struct { api.Vehicle api.ChargeState - api.Resurrector - api.VehicleRange + api.CurrentController + api.SocLimiter }{ Vehicle: base, ChargeState: &decorateVehicleChargeStateImpl{ chargeState: chargeState, }, - Resurrector: &decorateVehicleResurrectorImpl{ - resurrector: resurrector, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, }, - VehicleRange: &decorateVehicleVehicleRangeImpl{ - vehicleRange: vehicleRange, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, }, } - case chargeController == nil && chargeState == nil && currentController == nil && resurrector != nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange == nil: + case chargeController == nil && chargeState == nil && currentController != nil && resurrector == nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange != nil: return &struct { api.Vehicle - api.Resurrector - api.VehicleOdometer + api.CurrentController + api.VehicleRange }{ Vehicle: base, - Resurrector: &decorateVehicleResurrectorImpl{ - resurrector: resurrector, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, }, - VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ - vehicleOdometer: vehicleOdometer, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, }, } - case chargeController == nil && chargeState != nil && currentController == nil && resurrector != nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange == nil: + case chargeController == nil && chargeState == nil && currentController != nil && resurrector == nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange != nil: return &struct { api.Vehicle - api.ChargeState - api.Resurrector - api.VehicleOdometer + api.CurrentController + api.SocLimiter + api.VehicleRange }{ Vehicle: base, - ChargeState: &decorateVehicleChargeStateImpl{ - chargeState: chargeState, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, }, - Resurrector: &decorateVehicleResurrectorImpl{ - resurrector: resurrector, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, }, - VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ - vehicleOdometer: vehicleOdometer, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, }, } - case chargeController == nil && chargeState == nil && currentController == nil && resurrector != nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange != nil: + case chargeController == nil && chargeState != nil && currentController != nil && resurrector == nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange != nil: return &struct { api.Vehicle - api.Resurrector - api.VehicleOdometer + api.ChargeState + api.CurrentController api.VehicleRange }{ Vehicle: base, - Resurrector: &decorateVehicleResurrectorImpl{ - resurrector: resurrector, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, }, - VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ - vehicleOdometer: vehicleOdometer, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, }, VehicleRange: &decorateVehicleVehicleRangeImpl{ vehicleRange: vehicleRange, }, } - case chargeController == nil && chargeState != nil && currentController == nil && resurrector != nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange != nil: + case chargeController == nil && chargeState != nil && currentController != nil && resurrector == nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange != nil: return &struct { api.Vehicle api.ChargeState - api.Resurrector - api.VehicleOdometer + api.CurrentController + api.SocLimiter api.VehicleRange }{ Vehicle: base, ChargeState: &decorateVehicleChargeStateImpl{ chargeState: chargeState, }, - Resurrector: &decorateVehicleResurrectorImpl{ - resurrector: resurrector, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, }, - VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ - vehicleOdometer: vehicleOdometer, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, }, VehicleRange: &decorateVehicleVehicleRangeImpl{ vehicleRange: vehicleRange, }, } - case chargeController == nil && chargeState == nil && currentController == nil && resurrector != nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange == nil: + case chargeController == nil && chargeState == nil && currentController != nil && resurrector == nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange == nil: return &struct { api.Vehicle - api.Resurrector - api.VehicleClimater + api.CurrentController + api.VehicleOdometer }{ Vehicle: base, - Resurrector: &decorateVehicleResurrectorImpl{ - resurrector: resurrector, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, }, - VehicleClimater: &decorateVehicleVehicleClimaterImpl{ - vehicleClimater: vehicleClimater, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, }, } - case chargeController == nil && chargeState != nil && currentController == nil && resurrector != nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange == nil: + case chargeController == nil && chargeState == nil && currentController != nil && resurrector == nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange == nil: return &struct { api.Vehicle - api.ChargeState - api.Resurrector - api.VehicleClimater + api.CurrentController + api.SocLimiter + api.VehicleOdometer }{ Vehicle: base, - ChargeState: &decorateVehicleChargeStateImpl{ - chargeState: chargeState, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, }, - Resurrector: &decorateVehicleResurrectorImpl{ - resurrector: resurrector, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, }, - VehicleClimater: &decorateVehicleVehicleClimaterImpl{ - vehicleClimater: vehicleClimater, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, }, } - case chargeController == nil && chargeState == nil && currentController == nil && resurrector != nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange != nil: + case chargeController == nil && chargeState != nil && currentController != nil && resurrector == nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange == nil: return &struct { api.Vehicle - api.Resurrector - api.VehicleClimater - api.VehicleRange + api.ChargeState + api.CurrentController + api.VehicleOdometer }{ Vehicle: base, - Resurrector: &decorateVehicleResurrectorImpl{ - resurrector: resurrector, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, }, - VehicleClimater: &decorateVehicleVehicleClimaterImpl{ - vehicleClimater: vehicleClimater, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, }, - VehicleRange: &decorateVehicleVehicleRangeImpl{ - vehicleRange: vehicleRange, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, }, } - case chargeController == nil && chargeState != nil && currentController == nil && resurrector != nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange != nil: + case chargeController == nil && chargeState != nil && currentController != nil && resurrector == nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange == nil: return &struct { api.Vehicle api.ChargeState - api.Resurrector - api.VehicleClimater - api.VehicleRange + api.CurrentController + api.SocLimiter + api.VehicleOdometer }{ Vehicle: base, ChargeState: &decorateVehicleChargeStateImpl{ chargeState: chargeState, }, - Resurrector: &decorateVehicleResurrectorImpl{ - resurrector: resurrector, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, }, - VehicleClimater: &decorateVehicleVehicleClimaterImpl{ - vehicleClimater: vehicleClimater, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, }, - VehicleRange: &decorateVehicleVehicleRangeImpl{ - vehicleRange: vehicleRange, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, }, } - case chargeController == nil && chargeState == nil && currentController == nil && resurrector != nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange == nil: + case chargeController == nil && chargeState == nil && currentController != nil && resurrector == nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange != nil: return &struct { api.Vehicle - api.Resurrector - api.VehicleClimater + api.CurrentController api.VehicleOdometer + api.VehicleRange }{ Vehicle: base, - Resurrector: &decorateVehicleResurrectorImpl{ - resurrector: resurrector, - }, - VehicleClimater: &decorateVehicleVehicleClimaterImpl{ - vehicleClimater: vehicleClimater, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, }, VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ vehicleOdometer: vehicleOdometer, }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, } - case chargeController == nil && chargeState != nil && currentController == nil && resurrector != nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange == nil: + case chargeController == nil && chargeState == nil && currentController != nil && resurrector == nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange != nil: return &struct { api.Vehicle - api.ChargeState - api.Resurrector - api.VehicleClimater + api.CurrentController + api.SocLimiter api.VehicleOdometer + api.VehicleRange }{ Vehicle: base, - ChargeState: &decorateVehicleChargeStateImpl{ - chargeState: chargeState, - }, - Resurrector: &decorateVehicleResurrectorImpl{ - resurrector: resurrector, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, }, - VehicleClimater: &decorateVehicleVehicleClimaterImpl{ - vehicleClimater: vehicleClimater, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, }, VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ vehicleOdometer: vehicleOdometer, }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, } - case chargeController == nil && chargeState == nil && currentController == nil && resurrector != nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange != nil: + case chargeController == nil && chargeState != nil && currentController != nil && resurrector == nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange != nil: return &struct { api.Vehicle - api.Resurrector - api.VehicleClimater + api.ChargeState + api.CurrentController api.VehicleOdometer api.VehicleRange }{ Vehicle: base, - Resurrector: &decorateVehicleResurrectorImpl{ - resurrector: resurrector, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, }, - VehicleClimater: &decorateVehicleVehicleClimaterImpl{ - vehicleClimater: vehicleClimater, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, }, VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ vehicleOdometer: vehicleOdometer, @@ -825,12 +825,12 @@ func decorateVehicle(base api.Vehicle, chargeState func() (api.ChargeStatus, err }, } - case chargeController == nil && chargeState != nil && currentController == nil && resurrector != nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange != nil: + case chargeController == nil && chargeState != nil && currentController != nil && resurrector == nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange != nil: return &struct { api.Vehicle api.ChargeState - api.Resurrector - api.VehicleClimater + api.CurrentController + api.SocLimiter api.VehicleOdometer api.VehicleRange }{ @@ -838,11 +838,11 @@ func decorateVehicle(base api.Vehicle, chargeState func() (api.ChargeStatus, err ChargeState: &decorateVehicleChargeStateImpl{ chargeState: chargeState, }, - Resurrector: &decorateVehicleResurrectorImpl{ - resurrector: resurrector, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, }, - VehicleClimater: &decorateVehicleVehicleClimaterImpl{ - vehicleClimater: vehicleClimater, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, }, VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ vehicleOdometer: vehicleOdometer, @@ -852,66 +852,66 @@ func decorateVehicle(base api.Vehicle, chargeState func() (api.ChargeStatus, err }, } - case chargeController == nil && chargeState == nil && currentController != nil && resurrector != nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange == nil: + case chargeController == nil && chargeState == nil && currentController != nil && resurrector == nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange == nil: return &struct { api.Vehicle api.CurrentController - api.Resurrector + api.VehicleClimater }{ Vehicle: base, CurrentController: &decorateVehicleCurrentControllerImpl{ currentController: currentController, }, - Resurrector: &decorateVehicleResurrectorImpl{ - resurrector: resurrector, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, }, } - case chargeController == nil && chargeState != nil && currentController != nil && resurrector != nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange == nil: + case chargeController == nil && chargeState == nil && currentController != nil && resurrector == nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange == nil: return &struct { api.Vehicle - api.ChargeState api.CurrentController - api.Resurrector + api.SocLimiter + api.VehicleClimater }{ Vehicle: base, - ChargeState: &decorateVehicleChargeStateImpl{ - chargeState: chargeState, - }, CurrentController: &decorateVehicleCurrentControllerImpl{ currentController: currentController, }, - Resurrector: &decorateVehicleResurrectorImpl{ - resurrector: resurrector, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, }, } - case chargeController == nil && chargeState == nil && currentController != nil && resurrector != nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange != nil: + case chargeController == nil && chargeState != nil && currentController != nil && resurrector == nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange == nil: return &struct { api.Vehicle + api.ChargeState api.CurrentController - api.Resurrector - api.VehicleRange + api.VehicleClimater }{ Vehicle: base, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, CurrentController: &decorateVehicleCurrentControllerImpl{ currentController: currentController, }, - Resurrector: &decorateVehicleResurrectorImpl{ - resurrector: resurrector, - }, - VehicleRange: &decorateVehicleVehicleRangeImpl{ - vehicleRange: vehicleRange, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, }, } - case chargeController == nil && chargeState != nil && currentController != nil && resurrector != nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange != nil: + case chargeController == nil && chargeState != nil && currentController != nil && resurrector == nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange == nil: return &struct { api.Vehicle api.ChargeState api.CurrentController - api.Resurrector - api.VehicleRange + api.SocLimiter + api.VehicleClimater }{ Vehicle: base, ChargeState: &decorateVehicleChargeStateImpl{ @@ -920,70 +920,2751 @@ func decorateVehicle(base api.Vehicle, chargeState func() (api.ChargeStatus, err CurrentController: &decorateVehicleCurrentControllerImpl{ currentController: currentController, }, - Resurrector: &decorateVehicleResurrectorImpl{ - resurrector: resurrector, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, }, - VehicleRange: &decorateVehicleVehicleRangeImpl{ - vehicleRange: vehicleRange, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, }, } - case chargeController == nil && chargeState == nil && currentController != nil && resurrector != nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange == nil: + case chargeController == nil && chargeState == nil && currentController != nil && resurrector == nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange != nil: return &struct { api.Vehicle api.CurrentController - api.Resurrector - api.VehicleOdometer + api.VehicleClimater + api.VehicleRange }{ Vehicle: base, CurrentController: &decorateVehicleCurrentControllerImpl{ currentController: currentController, }, - Resurrector: &decorateVehicleResurrectorImpl{ - resurrector: resurrector, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, }, - VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ - vehicleOdometer: vehicleOdometer, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, }, } - case chargeController == nil && chargeState != nil && currentController != nil && resurrector != nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange == nil: + case chargeController == nil && chargeState == nil && currentController != nil && resurrector == nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange != nil: return &struct { api.Vehicle - api.ChargeState api.CurrentController - api.Resurrector - api.VehicleOdometer + api.SocLimiter + api.VehicleClimater + api.VehicleRange }{ Vehicle: base, - ChargeState: &decorateVehicleChargeStateImpl{ - chargeState: chargeState, - }, CurrentController: &decorateVehicleCurrentControllerImpl{ currentController: currentController, }, - Resurrector: &decorateVehicleResurrectorImpl{ - resurrector: resurrector, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, }, - VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ - vehicleOdometer: vehicleOdometer, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController == nil && chargeState != nil && currentController != nil && resurrector == nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.ChargeState + api.CurrentController + api.VehicleClimater + api.VehicleRange + }{ + Vehicle: base, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController == nil && chargeState != nil && currentController != nil && resurrector == nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.ChargeState + api.CurrentController + api.SocLimiter + api.VehicleClimater + api.VehicleRange + }{ + Vehicle: base, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController == nil && chargeState == nil && currentController != nil && resurrector == nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.CurrentController + api.VehicleClimater + api.VehicleOdometer + }{ + Vehicle: base, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + } + + case chargeController == nil && chargeState == nil && currentController != nil && resurrector == nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.CurrentController + api.SocLimiter + api.VehicleClimater + api.VehicleOdometer + }{ + Vehicle: base, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + } + + case chargeController == nil && chargeState != nil && currentController != nil && resurrector == nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.ChargeState + api.CurrentController + api.VehicleClimater + api.VehicleOdometer + }{ + Vehicle: base, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + } + + case chargeController == nil && chargeState != nil && currentController != nil && resurrector == nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.ChargeState + api.CurrentController + api.SocLimiter + api.VehicleClimater + api.VehicleOdometer + }{ + Vehicle: base, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + } + + case chargeController == nil && chargeState == nil && currentController != nil && resurrector == nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.CurrentController + api.VehicleClimater + api.VehicleOdometer + api.VehicleRange + }{ + Vehicle: base, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController == nil && chargeState == nil && currentController != nil && resurrector == nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.CurrentController + api.SocLimiter + api.VehicleClimater + api.VehicleOdometer + api.VehicleRange + }{ + Vehicle: base, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController == nil && chargeState != nil && currentController != nil && resurrector == nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.ChargeState + api.CurrentController + api.VehicleClimater + api.VehicleOdometer + api.VehicleRange + }{ + Vehicle: base, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController == nil && chargeState != nil && currentController != nil && resurrector == nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.ChargeState + api.CurrentController + api.SocLimiter + api.VehicleClimater + api.VehicleOdometer + api.VehicleRange + }{ + Vehicle: base, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController == nil && chargeState == nil && currentController == nil && resurrector != nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.Resurrector + }{ + Vehicle: base, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + } + + case chargeController == nil && chargeState == nil && currentController == nil && resurrector != nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.Resurrector + api.SocLimiter + }{ + Vehicle: base, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + } + + case chargeController == nil && chargeState != nil && currentController == nil && resurrector != nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.ChargeState + api.Resurrector + }{ + Vehicle: base, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + } + + case chargeController == nil && chargeState != nil && currentController == nil && resurrector != nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.ChargeState + api.Resurrector + api.SocLimiter + }{ + Vehicle: base, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + } + + case chargeController == nil && chargeState == nil && currentController == nil && resurrector != nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.Resurrector + api.VehicleRange + }{ + Vehicle: base, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController == nil && chargeState == nil && currentController == nil && resurrector != nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.Resurrector + api.SocLimiter + api.VehicleRange + }{ + Vehicle: base, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController == nil && chargeState != nil && currentController == nil && resurrector != nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.ChargeState + api.Resurrector + api.VehicleRange + }{ + Vehicle: base, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController == nil && chargeState != nil && currentController == nil && resurrector != nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.ChargeState + api.Resurrector + api.SocLimiter + api.VehicleRange + }{ + Vehicle: base, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController == nil && chargeState == nil && currentController == nil && resurrector != nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.Resurrector + api.VehicleOdometer + }{ + Vehicle: base, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + } + + case chargeController == nil && chargeState == nil && currentController == nil && resurrector != nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.Resurrector + api.SocLimiter + api.VehicleOdometer + }{ + Vehicle: base, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + } + + case chargeController == nil && chargeState != nil && currentController == nil && resurrector != nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.ChargeState + api.Resurrector + api.VehicleOdometer + }{ + Vehicle: base, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + } + + case chargeController == nil && chargeState != nil && currentController == nil && resurrector != nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.ChargeState + api.Resurrector + api.SocLimiter + api.VehicleOdometer + }{ + Vehicle: base, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + } + + case chargeController == nil && chargeState == nil && currentController == nil && resurrector != nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.Resurrector + api.VehicleOdometer + api.VehicleRange + }{ + Vehicle: base, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController == nil && chargeState == nil && currentController == nil && resurrector != nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.Resurrector + api.SocLimiter + api.VehicleOdometer + api.VehicleRange + }{ + Vehicle: base, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController == nil && chargeState != nil && currentController == nil && resurrector != nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.ChargeState + api.Resurrector + api.VehicleOdometer + api.VehicleRange + }{ + Vehicle: base, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController == nil && chargeState != nil && currentController == nil && resurrector != nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.ChargeState + api.Resurrector + api.SocLimiter + api.VehicleOdometer + api.VehicleRange + }{ + Vehicle: base, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController == nil && chargeState == nil && currentController == nil && resurrector != nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.Resurrector + api.VehicleClimater + }{ + Vehicle: base, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + } + + case chargeController == nil && chargeState == nil && currentController == nil && resurrector != nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.Resurrector + api.SocLimiter + api.VehicleClimater + }{ + Vehicle: base, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + } + + case chargeController == nil && chargeState != nil && currentController == nil && resurrector != nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.ChargeState + api.Resurrector + api.VehicleClimater + }{ + Vehicle: base, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + } + + case chargeController == nil && chargeState != nil && currentController == nil && resurrector != nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.ChargeState + api.Resurrector + api.SocLimiter + api.VehicleClimater + }{ + Vehicle: base, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + } + + case chargeController == nil && chargeState == nil && currentController == nil && resurrector != nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.Resurrector + api.VehicleClimater + api.VehicleRange + }{ + Vehicle: base, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController == nil && chargeState == nil && currentController == nil && resurrector != nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.Resurrector + api.SocLimiter + api.VehicleClimater + api.VehicleRange + }{ + Vehicle: base, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController == nil && chargeState != nil && currentController == nil && resurrector != nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.ChargeState + api.Resurrector + api.VehicleClimater + api.VehicleRange + }{ + Vehicle: base, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController == nil && chargeState != nil && currentController == nil && resurrector != nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.ChargeState + api.Resurrector + api.SocLimiter + api.VehicleClimater + api.VehicleRange + }{ + Vehicle: base, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController == nil && chargeState == nil && currentController == nil && resurrector != nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.Resurrector + api.VehicleClimater + api.VehicleOdometer + }{ + Vehicle: base, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + } + + case chargeController == nil && chargeState == nil && currentController == nil && resurrector != nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.Resurrector + api.SocLimiter + api.VehicleClimater + api.VehicleOdometer + }{ + Vehicle: base, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + } + + case chargeController == nil && chargeState != nil && currentController == nil && resurrector != nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.ChargeState + api.Resurrector + api.VehicleClimater + api.VehicleOdometer + }{ + Vehicle: base, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + } + + case chargeController == nil && chargeState != nil && currentController == nil && resurrector != nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.ChargeState + api.Resurrector + api.SocLimiter + api.VehicleClimater + api.VehicleOdometer + }{ + Vehicle: base, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + } + + case chargeController == nil && chargeState == nil && currentController == nil && resurrector != nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.Resurrector + api.VehicleClimater + api.VehicleOdometer + api.VehicleRange + }{ + Vehicle: base, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController == nil && chargeState == nil && currentController == nil && resurrector != nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.Resurrector + api.SocLimiter + api.VehicleClimater + api.VehicleOdometer + api.VehicleRange + }{ + Vehicle: base, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController == nil && chargeState != nil && currentController == nil && resurrector != nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.ChargeState + api.Resurrector + api.VehicleClimater + api.VehicleOdometer + api.VehicleRange + }{ + Vehicle: base, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController == nil && chargeState != nil && currentController == nil && resurrector != nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.ChargeState + api.Resurrector + api.SocLimiter + api.VehicleClimater + api.VehicleOdometer + api.VehicleRange + }{ + Vehicle: base, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController == nil && chargeState == nil && currentController != nil && resurrector != nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.CurrentController + api.Resurrector + }{ + Vehicle: base, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + } + + case chargeController == nil && chargeState == nil && currentController != nil && resurrector != nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.CurrentController + api.Resurrector + api.SocLimiter + }{ + Vehicle: base, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + } + + case chargeController == nil && chargeState != nil && currentController != nil && resurrector != nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.ChargeState + api.CurrentController + api.Resurrector + }{ + Vehicle: base, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + } + + case chargeController == nil && chargeState != nil && currentController != nil && resurrector != nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.ChargeState + api.CurrentController + api.Resurrector + api.SocLimiter + }{ + Vehicle: base, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + } + + case chargeController == nil && chargeState == nil && currentController != nil && resurrector != nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.CurrentController + api.Resurrector + api.VehicleRange + }{ + Vehicle: base, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController == nil && chargeState == nil && currentController != nil && resurrector != nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.CurrentController + api.Resurrector + api.SocLimiter + api.VehicleRange + }{ + Vehicle: base, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController == nil && chargeState != nil && currentController != nil && resurrector != nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.ChargeState + api.CurrentController + api.Resurrector + api.VehicleRange + }{ + Vehicle: base, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController == nil && chargeState != nil && currentController != nil && resurrector != nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.ChargeState + api.CurrentController + api.Resurrector + api.SocLimiter + api.VehicleRange + }{ + Vehicle: base, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController == nil && chargeState == nil && currentController != nil && resurrector != nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.CurrentController + api.Resurrector + api.VehicleOdometer + }{ + Vehicle: base, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + } + + case chargeController == nil && chargeState == nil && currentController != nil && resurrector != nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.CurrentController + api.Resurrector + api.SocLimiter + api.VehicleOdometer + }{ + Vehicle: base, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + } + + case chargeController == nil && chargeState != nil && currentController != nil && resurrector != nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.ChargeState + api.CurrentController + api.Resurrector + api.VehicleOdometer + }{ + Vehicle: base, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + } + + case chargeController == nil && chargeState != nil && currentController != nil && resurrector != nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.ChargeState + api.CurrentController + api.Resurrector + api.SocLimiter + api.VehicleOdometer + }{ + Vehicle: base, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + } + + case chargeController == nil && chargeState == nil && currentController != nil && resurrector != nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.CurrentController + api.Resurrector + api.VehicleOdometer + api.VehicleRange + }{ + Vehicle: base, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController == nil && chargeState == nil && currentController != nil && resurrector != nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.CurrentController + api.Resurrector + api.SocLimiter + api.VehicleOdometer + api.VehicleRange + }{ + Vehicle: base, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController == nil && chargeState != nil && currentController != nil && resurrector != nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.ChargeState + api.CurrentController + api.Resurrector + api.VehicleOdometer + api.VehicleRange + }{ + Vehicle: base, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController == nil && chargeState != nil && currentController != nil && resurrector != nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.ChargeState + api.CurrentController + api.Resurrector + api.SocLimiter + api.VehicleOdometer + api.VehicleRange + }{ + Vehicle: base, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController == nil && chargeState == nil && currentController != nil && resurrector != nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.CurrentController + api.Resurrector + api.VehicleClimater + }{ + Vehicle: base, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + } + + case chargeController == nil && chargeState == nil && currentController != nil && resurrector != nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.CurrentController + api.Resurrector + api.SocLimiter + api.VehicleClimater + }{ + Vehicle: base, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + } + + case chargeController == nil && chargeState != nil && currentController != nil && resurrector != nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.ChargeState + api.CurrentController + api.Resurrector + api.VehicleClimater + }{ + Vehicle: base, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + } + + case chargeController == nil && chargeState != nil && currentController != nil && resurrector != nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.ChargeState + api.CurrentController + api.Resurrector + api.SocLimiter + api.VehicleClimater + }{ + Vehicle: base, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + } + + case chargeController == nil && chargeState == nil && currentController != nil && resurrector != nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.CurrentController + api.Resurrector + api.VehicleClimater + api.VehicleRange + }{ + Vehicle: base, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController == nil && chargeState == nil && currentController != nil && resurrector != nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.CurrentController + api.Resurrector + api.SocLimiter + api.VehicleClimater + api.VehicleRange + }{ + Vehicle: base, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController == nil && chargeState != nil && currentController != nil && resurrector != nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.ChargeState + api.CurrentController + api.Resurrector + api.VehicleClimater + api.VehicleRange + }{ + Vehicle: base, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController == nil && chargeState != nil && currentController != nil && resurrector != nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.ChargeState + api.CurrentController + api.Resurrector + api.SocLimiter + api.VehicleClimater + api.VehicleRange + }{ + Vehicle: base, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController == nil && chargeState == nil && currentController != nil && resurrector != nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.CurrentController + api.Resurrector + api.VehicleClimater + api.VehicleOdometer + }{ + Vehicle: base, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + } + + case chargeController == nil && chargeState == nil && currentController != nil && resurrector != nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.CurrentController + api.Resurrector + api.SocLimiter + api.VehicleClimater + api.VehicleOdometer + }{ + Vehicle: base, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + } + + case chargeController == nil && chargeState != nil && currentController != nil && resurrector != nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.ChargeState + api.CurrentController + api.Resurrector + api.VehicleClimater + api.VehicleOdometer + }{ + Vehicle: base, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + } + + case chargeController == nil && chargeState != nil && currentController != nil && resurrector != nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.ChargeState + api.CurrentController + api.Resurrector + api.SocLimiter + api.VehicleClimater + api.VehicleOdometer + }{ + Vehicle: base, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + } + + case chargeController == nil && chargeState == nil && currentController != nil && resurrector != nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.CurrentController + api.Resurrector + api.VehicleClimater + api.VehicleOdometer + api.VehicleRange + }{ + Vehicle: base, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController == nil && chargeState == nil && currentController != nil && resurrector != nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.CurrentController + api.Resurrector + api.SocLimiter + api.VehicleClimater + api.VehicleOdometer + api.VehicleRange + }{ + Vehicle: base, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController == nil && chargeState != nil && currentController != nil && resurrector != nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.ChargeState + api.CurrentController + api.Resurrector + api.VehicleClimater + api.VehicleOdometer + api.VehicleRange + }{ + Vehicle: base, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController == nil && chargeState != nil && currentController != nil && resurrector != nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.ChargeState + api.CurrentController + api.Resurrector + api.SocLimiter + api.VehicleClimater + api.VehicleOdometer + api.VehicleRange + }{ + Vehicle: base, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController != nil && chargeState == nil && currentController == nil && resurrector == nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.ChargeController + }{ + Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + } + + case chargeController != nil && chargeState == nil && currentController == nil && resurrector == nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.ChargeController + api.SocLimiter + }{ + Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + } + + case chargeController != nil && chargeState != nil && currentController == nil && resurrector == nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.ChargeController + api.ChargeState + }{ + Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + } + + case chargeController != nil && chargeState != nil && currentController == nil && resurrector == nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.ChargeController + api.ChargeState + api.SocLimiter + }{ + Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + } + + case chargeController != nil && chargeState == nil && currentController == nil && resurrector == nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.ChargeController + api.VehicleRange + }{ + Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController != nil && chargeState == nil && currentController == nil && resurrector == nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.ChargeController + api.SocLimiter + api.VehicleRange + }{ + Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController != nil && chargeState != nil && currentController == nil && resurrector == nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.ChargeController + api.ChargeState + api.VehicleRange + }{ + Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController != nil && chargeState != nil && currentController == nil && resurrector == nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.ChargeController + api.ChargeState + api.SocLimiter + api.VehicleRange + }{ + Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController != nil && chargeState == nil && currentController == nil && resurrector == nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.ChargeController + api.VehicleOdometer + }{ + Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + } + + case chargeController != nil && chargeState == nil && currentController == nil && resurrector == nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.ChargeController + api.SocLimiter + api.VehicleOdometer + }{ + Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + } + + case chargeController != nil && chargeState != nil && currentController == nil && resurrector == nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.ChargeController + api.ChargeState + api.VehicleOdometer + }{ + Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + } + + case chargeController != nil && chargeState != nil && currentController == nil && resurrector == nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.ChargeController + api.ChargeState + api.SocLimiter + api.VehicleOdometer + }{ + Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + } + + case chargeController != nil && chargeState == nil && currentController == nil && resurrector == nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.ChargeController + api.VehicleOdometer + api.VehicleRange + }{ + Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController != nil && chargeState == nil && currentController == nil && resurrector == nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.ChargeController + api.SocLimiter + api.VehicleOdometer + api.VehicleRange + }{ + Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController != nil && chargeState != nil && currentController == nil && resurrector == nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.ChargeController + api.ChargeState + api.VehicleOdometer + api.VehicleRange + }{ + Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController != nil && chargeState != nil && currentController == nil && resurrector == nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.ChargeController + api.ChargeState + api.SocLimiter + api.VehicleOdometer + api.VehicleRange + }{ + Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController != nil && chargeState == nil && currentController == nil && resurrector == nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.ChargeController + api.VehicleClimater + }{ + Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + } + + case chargeController != nil && chargeState == nil && currentController == nil && resurrector == nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.ChargeController + api.SocLimiter + api.VehicleClimater + }{ + Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + } + + case chargeController != nil && chargeState != nil && currentController == nil && resurrector == nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.ChargeController + api.ChargeState + api.VehicleClimater + }{ + Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + } + + case chargeController != nil && chargeState != nil && currentController == nil && resurrector == nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.ChargeController + api.ChargeState + api.SocLimiter + api.VehicleClimater + }{ + Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + } + + case chargeController != nil && chargeState == nil && currentController == nil && resurrector == nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.ChargeController + api.VehicleClimater + api.VehicleRange + }{ + Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController != nil && chargeState == nil && currentController == nil && resurrector == nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.ChargeController + api.SocLimiter + api.VehicleClimater + api.VehicleRange + }{ + Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController != nil && chargeState != nil && currentController == nil && resurrector == nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.ChargeController + api.ChargeState + api.VehicleClimater + api.VehicleRange + }{ + Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController != nil && chargeState != nil && currentController == nil && resurrector == nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.ChargeController + api.ChargeState + api.SocLimiter + api.VehicleClimater + api.VehicleRange + }{ + Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController != nil && chargeState == nil && currentController == nil && resurrector == nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.ChargeController + api.VehicleClimater + api.VehicleOdometer + }{ + Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + } + + case chargeController != nil && chargeState == nil && currentController == nil && resurrector == nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.ChargeController + api.SocLimiter + api.VehicleClimater + api.VehicleOdometer + }{ + Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + } + + case chargeController != nil && chargeState != nil && currentController == nil && resurrector == nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.ChargeController + api.ChargeState + api.VehicleClimater + api.VehicleOdometer + }{ + Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + } + + case chargeController != nil && chargeState != nil && currentController == nil && resurrector == nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.ChargeController + api.ChargeState + api.SocLimiter + api.VehicleClimater + api.VehicleOdometer + }{ + Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + } + + case chargeController != nil && chargeState == nil && currentController == nil && resurrector == nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.ChargeController + api.VehicleClimater + api.VehicleOdometer + api.VehicleRange + }{ + Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController != nil && chargeState == nil && currentController == nil && resurrector == nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.ChargeController + api.SocLimiter + api.VehicleClimater + api.VehicleOdometer + api.VehicleRange + }{ + Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController != nil && chargeState != nil && currentController == nil && resurrector == nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.ChargeController + api.ChargeState + api.VehicleClimater + api.VehicleOdometer + api.VehicleRange + }{ + Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController != nil && chargeState != nil && currentController == nil && resurrector == nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.ChargeController + api.ChargeState + api.SocLimiter + api.VehicleClimater + api.VehicleOdometer + api.VehicleRange + }{ + Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController != nil && chargeState == nil && currentController != nil && resurrector == nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.ChargeController + api.CurrentController + }{ + Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + } + + case chargeController != nil && chargeState == nil && currentController != nil && resurrector == nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.ChargeController + api.CurrentController + api.SocLimiter + }{ + Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + } + + case chargeController != nil && chargeState != nil && currentController != nil && resurrector == nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.ChargeController + api.ChargeState + api.CurrentController + }{ + Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + } + + case chargeController != nil && chargeState != nil && currentController != nil && resurrector == nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.ChargeController + api.ChargeState + api.CurrentController + api.SocLimiter + }{ + Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + } + + case chargeController != nil && chargeState == nil && currentController != nil && resurrector == nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.ChargeController + api.CurrentController + api.VehicleRange + }{ + Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController != nil && chargeState == nil && currentController != nil && resurrector == nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.ChargeController + api.CurrentController + api.SocLimiter + api.VehicleRange + }{ + Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController != nil && chargeState != nil && currentController != nil && resurrector == nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.ChargeController + api.ChargeState + api.CurrentController + api.VehicleRange + }{ + Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController != nil && chargeState != nil && currentController != nil && resurrector == nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.ChargeController + api.ChargeState + api.CurrentController + api.SocLimiter + api.VehicleRange + }{ + Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController != nil && chargeState == nil && currentController != nil && resurrector == nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.ChargeController + api.CurrentController + api.VehicleOdometer + }{ + Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + } + + case chargeController != nil && chargeState == nil && currentController != nil && resurrector == nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.ChargeController + api.CurrentController + api.SocLimiter + api.VehicleOdometer + }{ + Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + } + + case chargeController != nil && chargeState != nil && currentController != nil && resurrector == nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.ChargeController + api.ChargeState + api.CurrentController + api.VehicleOdometer + }{ + Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + } + + case chargeController != nil && chargeState != nil && currentController != nil && resurrector == nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.ChargeController + api.ChargeState + api.CurrentController + api.SocLimiter + api.VehicleOdometer + }{ + Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, }, } - case chargeController == nil && chargeState == nil && currentController != nil && resurrector != nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange != nil: + case chargeController != nil && chargeState == nil && currentController != nil && resurrector == nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange != nil: return &struct { api.Vehicle + api.ChargeController api.CurrentController - api.Resurrector api.VehicleOdometer api.VehicleRange }{ Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, CurrentController: &decorateVehicleCurrentControllerImpl{ currentController: currentController, }, - Resurrector: &decorateVehicleResurrectorImpl{ - resurrector: resurrector, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController != nil && chargeState == nil && currentController != nil && resurrector == nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.ChargeController + api.CurrentController + api.SocLimiter + api.VehicleOdometer + api.VehicleRange + }{ + Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, }, VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ vehicleOdometer: vehicleOdometer, @@ -993,166 +3674,418 @@ func decorateVehicle(base api.Vehicle, chargeState func() (api.ChargeStatus, err }, } - case chargeController == nil && chargeState != nil && currentController != nil && resurrector != nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange != nil: + case chargeController != nil && chargeState != nil && currentController != nil && resurrector == nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange != nil: return &struct { api.Vehicle + api.ChargeController api.ChargeState api.CurrentController - api.Resurrector api.VehicleOdometer api.VehicleRange }{ Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController != nil && chargeState != nil && currentController != nil && resurrector == nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.ChargeController + api.ChargeState + api.CurrentController + api.SocLimiter + api.VehicleOdometer + api.VehicleRange + }{ + Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController != nil && chargeState == nil && currentController != nil && resurrector == nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.ChargeController + api.CurrentController + api.VehicleClimater + }{ + Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + } + + case chargeController != nil && chargeState == nil && currentController != nil && resurrector == nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.ChargeController + api.CurrentController + api.SocLimiter + api.VehicleClimater + }{ + Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + } + + case chargeController != nil && chargeState != nil && currentController != nil && resurrector == nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.ChargeController + api.ChargeState + api.CurrentController + api.VehicleClimater + }{ + Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + } + + case chargeController != nil && chargeState != nil && currentController != nil && resurrector == nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange == nil: + return &struct { + api.Vehicle + api.ChargeController + api.ChargeState + api.CurrentController + api.SocLimiter + api.VehicleClimater + }{ + Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + } + + case chargeController != nil && chargeState == nil && currentController != nil && resurrector == nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.ChargeController + api.CurrentController + api.VehicleClimater + api.VehicleRange + }{ + Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController != nil && chargeState == nil && currentController != nil && resurrector == nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.ChargeController + api.CurrentController + api.SocLimiter + api.VehicleClimater + api.VehicleRange + }{ + Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController != nil && chargeState != nil && currentController != nil && resurrector == nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.ChargeController + api.ChargeState + api.CurrentController + api.VehicleClimater + api.VehicleRange + }{ + Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, + } + + case chargeController != nil && chargeState != nil && currentController != nil && resurrector == nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange != nil: + return &struct { + api.Vehicle + api.ChargeController + api.ChargeState + api.CurrentController + api.SocLimiter + api.VehicleClimater + api.VehicleRange + }{ + Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, ChargeState: &decorateVehicleChargeStateImpl{ chargeState: chargeState, }, CurrentController: &decorateVehicleCurrentControllerImpl{ currentController: currentController, }, - Resurrector: &decorateVehicleResurrectorImpl{ - resurrector: resurrector, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, }, - VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ - vehicleOdometer: vehicleOdometer, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, }, VehicleRange: &decorateVehicleVehicleRangeImpl{ vehicleRange: vehicleRange, }, } - case chargeController == nil && chargeState == nil && currentController != nil && resurrector != nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange == nil: + case chargeController != nil && chargeState == nil && currentController != nil && resurrector == nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange == nil: return &struct { api.Vehicle + api.ChargeController api.CurrentController - api.Resurrector api.VehicleClimater + api.VehicleOdometer }{ Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, CurrentController: &decorateVehicleCurrentControllerImpl{ currentController: currentController, }, - Resurrector: &decorateVehicleResurrectorImpl{ - resurrector: resurrector, - }, VehicleClimater: &decorateVehicleVehicleClimaterImpl{ vehicleClimater: vehicleClimater, }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, } - case chargeController == nil && chargeState != nil && currentController != nil && resurrector != nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange == nil: + case chargeController != nil && chargeState == nil && currentController != nil && resurrector == nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange == nil: return &struct { api.Vehicle - api.ChargeState + api.ChargeController api.CurrentController - api.Resurrector + api.SocLimiter api.VehicleClimater + api.VehicleOdometer }{ Vehicle: base, - ChargeState: &decorateVehicleChargeStateImpl{ - chargeState: chargeState, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, }, CurrentController: &decorateVehicleCurrentControllerImpl{ currentController: currentController, }, - Resurrector: &decorateVehicleResurrectorImpl{ - resurrector: resurrector, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, }, VehicleClimater: &decorateVehicleVehicleClimaterImpl{ vehicleClimater: vehicleClimater, }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, } - case chargeController == nil && chargeState == nil && currentController != nil && resurrector != nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange != nil: + case chargeController != nil && chargeState != nil && currentController != nil && resurrector == nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange == nil: return &struct { api.Vehicle + api.ChargeController + api.ChargeState api.CurrentController - api.Resurrector api.VehicleClimater - api.VehicleRange + api.VehicleOdometer }{ Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, CurrentController: &decorateVehicleCurrentControllerImpl{ currentController: currentController, }, - Resurrector: &decorateVehicleResurrectorImpl{ - resurrector: resurrector, - }, VehicleClimater: &decorateVehicleVehicleClimaterImpl{ vehicleClimater: vehicleClimater, }, - VehicleRange: &decorateVehicleVehicleRangeImpl{ - vehicleRange: vehicleRange, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, }, } - case chargeController == nil && chargeState != nil && currentController != nil && resurrector != nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange != nil: + case chargeController != nil && chargeState != nil && currentController != nil && resurrector == nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange == nil: return &struct { api.Vehicle + api.ChargeController api.ChargeState api.CurrentController - api.Resurrector + api.SocLimiter api.VehicleClimater - api.VehicleRange + api.VehicleOdometer }{ Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, ChargeState: &decorateVehicleChargeStateImpl{ chargeState: chargeState, }, CurrentController: &decorateVehicleCurrentControllerImpl{ currentController: currentController, }, - Resurrector: &decorateVehicleResurrectorImpl{ - resurrector: resurrector, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, }, VehicleClimater: &decorateVehicleVehicleClimaterImpl{ vehicleClimater: vehicleClimater, }, - VehicleRange: &decorateVehicleVehicleRangeImpl{ - vehicleRange: vehicleRange, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, }, } - case chargeController == nil && chargeState == nil && currentController != nil && resurrector != nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange == nil: + case chargeController != nil && chargeState == nil && currentController != nil && resurrector == nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange != nil: return &struct { api.Vehicle + api.ChargeController api.CurrentController - api.Resurrector api.VehicleClimater api.VehicleOdometer + api.VehicleRange }{ Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, CurrentController: &decorateVehicleCurrentControllerImpl{ currentController: currentController, }, - Resurrector: &decorateVehicleResurrectorImpl{ - resurrector: resurrector, - }, VehicleClimater: &decorateVehicleVehicleClimaterImpl{ vehicleClimater: vehicleClimater, }, VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ vehicleOdometer: vehicleOdometer, }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, } - case chargeController == nil && chargeState != nil && currentController != nil && resurrector != nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange == nil: + case chargeController != nil && chargeState == nil && currentController != nil && resurrector == nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange != nil: return &struct { api.Vehicle - api.ChargeState + api.ChargeController api.CurrentController - api.Resurrector + api.SocLimiter api.VehicleClimater api.VehicleOdometer + api.VehicleRange }{ Vehicle: base, - ChargeState: &decorateVehicleChargeStateImpl{ - chargeState: chargeState, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, }, CurrentController: &decorateVehicleCurrentControllerImpl{ currentController: currentController, }, - Resurrector: &decorateVehicleResurrectorImpl{ - resurrector: resurrector, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, }, VehicleClimater: &decorateVehicleVehicleClimaterImpl{ vehicleClimater: vehicleClimater, @@ -1160,24 +4093,31 @@ func decorateVehicle(base api.Vehicle, chargeState func() (api.ChargeStatus, err VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ vehicleOdometer: vehicleOdometer, }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, } - case chargeController == nil && chargeState == nil && currentController != nil && resurrector != nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange != nil: + case chargeController != nil && chargeState != nil && currentController != nil && resurrector == nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange != nil: return &struct { api.Vehicle + api.ChargeController + api.ChargeState api.CurrentController - api.Resurrector api.VehicleClimater api.VehicleOdometer api.VehicleRange }{ Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, CurrentController: &decorateVehicleCurrentControllerImpl{ currentController: currentController, }, - Resurrector: &decorateVehicleResurrectorImpl{ - resurrector: resurrector, - }, VehicleClimater: &decorateVehicleVehicleClimaterImpl{ vehicleClimater: vehicleClimater, }, @@ -1189,25 +4129,29 @@ func decorateVehicle(base api.Vehicle, chargeState func() (api.ChargeStatus, err }, } - case chargeController == nil && chargeState != nil && currentController != nil && resurrector != nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange != nil: + case chargeController != nil && chargeState != nil && currentController != nil && resurrector == nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange != nil: return &struct { api.Vehicle + api.ChargeController api.ChargeState api.CurrentController - api.Resurrector + api.SocLimiter api.VehicleClimater api.VehicleOdometer api.VehicleRange }{ Vehicle: base, + ChargeController: &decorateVehicleChargeControllerImpl{ + chargeController: chargeController, + }, ChargeState: &decorateVehicleChargeStateImpl{ chargeState: chargeState, }, CurrentController: &decorateVehicleCurrentControllerImpl{ currentController: currentController, }, - Resurrector: &decorateVehicleResurrectorImpl{ - resurrector: resurrector, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, }, VehicleClimater: &decorateVehicleVehicleClimaterImpl{ vehicleClimater: vehicleClimater, @@ -1220,53 +4164,66 @@ func decorateVehicle(base api.Vehicle, chargeState func() (api.ChargeStatus, err }, } - case chargeController != nil && chargeState == nil && currentController == nil && resurrector == nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange == nil: + case chargeController != nil && chargeState == nil && currentController == nil && resurrector != nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange == nil: return &struct { api.Vehicle api.ChargeController + api.Resurrector }{ Vehicle: base, ChargeController: &decorateVehicleChargeControllerImpl{ chargeController: chargeController, }, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, } - case chargeController != nil && chargeState != nil && currentController == nil && resurrector == nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange == nil: + case chargeController != nil && chargeState == nil && currentController == nil && resurrector != nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange == nil: return &struct { api.Vehicle api.ChargeController - api.ChargeState + api.Resurrector + api.SocLimiter }{ Vehicle: base, ChargeController: &decorateVehicleChargeControllerImpl{ chargeController: chargeController, }, - ChargeState: &decorateVehicleChargeStateImpl{ - chargeState: chargeState, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, }, } - case chargeController != nil && chargeState == nil && currentController == nil && resurrector == nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange != nil: + case chargeController != nil && chargeState != nil && currentController == nil && resurrector != nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange == nil: return &struct { api.Vehicle api.ChargeController - api.VehicleRange + api.ChargeState + api.Resurrector }{ Vehicle: base, ChargeController: &decorateVehicleChargeControllerImpl{ chargeController: chargeController, }, - VehicleRange: &decorateVehicleVehicleRangeImpl{ - vehicleRange: vehicleRange, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, }, } - case chargeController != nil && chargeState != nil && currentController == nil && resurrector == nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange != nil: + case chargeController != nil && chargeState != nil && currentController == nil && resurrector != nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange == nil: return &struct { api.Vehicle api.ChargeController api.ChargeState - api.VehicleRange + api.Resurrector + api.SocLimiter }{ Vehicle: base, ChargeController: &decorateVehicleChargeControllerImpl{ @@ -1275,70 +4232,86 @@ func decorateVehicle(base api.Vehicle, chargeState func() (api.ChargeStatus, err ChargeState: &decorateVehicleChargeStateImpl{ chargeState: chargeState, }, - VehicleRange: &decorateVehicleVehicleRangeImpl{ - vehicleRange: vehicleRange, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, }, } - case chargeController != nil && chargeState == nil && currentController == nil && resurrector == nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange == nil: + case chargeController != nil && chargeState == nil && currentController == nil && resurrector != nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange != nil: return &struct { api.Vehicle api.ChargeController - api.VehicleOdometer + api.Resurrector + api.VehicleRange }{ Vehicle: base, ChargeController: &decorateVehicleChargeControllerImpl{ chargeController: chargeController, }, - VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ - vehicleOdometer: vehicleOdometer, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, }, } - case chargeController != nil && chargeState != nil && currentController == nil && resurrector == nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange == nil: + case chargeController != nil && chargeState == nil && currentController == nil && resurrector != nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange != nil: return &struct { api.Vehicle api.ChargeController - api.ChargeState - api.VehicleOdometer + api.Resurrector + api.SocLimiter + api.VehicleRange }{ Vehicle: base, ChargeController: &decorateVehicleChargeControllerImpl{ chargeController: chargeController, }, - ChargeState: &decorateVehicleChargeStateImpl{ - chargeState: chargeState, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, }, - VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ - vehicleOdometer: vehicleOdometer, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, }, } - case chargeController != nil && chargeState == nil && currentController == nil && resurrector == nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange != nil: + case chargeController != nil && chargeState != nil && currentController == nil && resurrector != nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange != nil: return &struct { api.Vehicle api.ChargeController - api.VehicleOdometer + api.ChargeState + api.Resurrector api.VehicleRange }{ Vehicle: base, ChargeController: &decorateVehicleChargeControllerImpl{ chargeController: chargeController, }, - VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ - vehicleOdometer: vehicleOdometer, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, }, VehicleRange: &decorateVehicleVehicleRangeImpl{ vehicleRange: vehicleRange, }, } - case chargeController != nil && chargeState != nil && currentController == nil && resurrector == nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange != nil: + case chargeController != nil && chargeState != nil && currentController == nil && resurrector != nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange != nil: return &struct { api.Vehicle api.ChargeController api.ChargeState - api.VehicleOdometer + api.Resurrector + api.SocLimiter api.VehicleRange }{ Vehicle: base, @@ -1348,74 +4321,90 @@ func decorateVehicle(base api.Vehicle, chargeState func() (api.ChargeStatus, err ChargeState: &decorateVehicleChargeStateImpl{ chargeState: chargeState, }, - VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ - vehicleOdometer: vehicleOdometer, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, }, VehicleRange: &decorateVehicleVehicleRangeImpl{ vehicleRange: vehicleRange, }, } - case chargeController != nil && chargeState == nil && currentController == nil && resurrector == nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange == nil: + case chargeController != nil && chargeState == nil && currentController == nil && resurrector != nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange == nil: return &struct { api.Vehicle api.ChargeController - api.VehicleClimater + api.Resurrector + api.VehicleOdometer }{ Vehicle: base, ChargeController: &decorateVehicleChargeControllerImpl{ chargeController: chargeController, }, - VehicleClimater: &decorateVehicleVehicleClimaterImpl{ - vehicleClimater: vehicleClimater, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, }, } - case chargeController != nil && chargeState != nil && currentController == nil && resurrector == nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange == nil: + case chargeController != nil && chargeState == nil && currentController == nil && resurrector != nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange == nil: return &struct { api.Vehicle api.ChargeController - api.ChargeState - api.VehicleClimater + api.Resurrector + api.SocLimiter + api.VehicleOdometer }{ Vehicle: base, ChargeController: &decorateVehicleChargeControllerImpl{ chargeController: chargeController, }, - ChargeState: &decorateVehicleChargeStateImpl{ - chargeState: chargeState, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, }, - VehicleClimater: &decorateVehicleVehicleClimaterImpl{ - vehicleClimater: vehicleClimater, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, }, } - case chargeController != nil && chargeState == nil && currentController == nil && resurrector == nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange != nil: + case chargeController != nil && chargeState != nil && currentController == nil && resurrector != nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange == nil: return &struct { api.Vehicle api.ChargeController - api.VehicleClimater - api.VehicleRange + api.ChargeState + api.Resurrector + api.VehicleOdometer }{ Vehicle: base, ChargeController: &decorateVehicleChargeControllerImpl{ chargeController: chargeController, }, - VehicleClimater: &decorateVehicleVehicleClimaterImpl{ - vehicleClimater: vehicleClimater, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, }, - VehicleRange: &decorateVehicleVehicleRangeImpl{ - vehicleRange: vehicleRange, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, }, } - case chargeController != nil && chargeState != nil && currentController == nil && resurrector == nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange != nil: + case chargeController != nil && chargeState != nil && currentController == nil && resurrector != nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange == nil: return &struct { api.Vehicle api.ChargeController api.ChargeState - api.VehicleClimater - api.VehicleRange + api.Resurrector + api.SocLimiter + api.VehicleOdometer }{ Vehicle: base, ChargeController: &decorateVehicleChargeControllerImpl{ @@ -1424,61 +4413,73 @@ func decorateVehicle(base api.Vehicle, chargeState func() (api.ChargeStatus, err ChargeState: &decorateVehicleChargeStateImpl{ chargeState: chargeState, }, - VehicleClimater: &decorateVehicleVehicleClimaterImpl{ - vehicleClimater: vehicleClimater, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, }, - VehicleRange: &decorateVehicleVehicleRangeImpl{ - vehicleRange: vehicleRange, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, }, } - case chargeController != nil && chargeState == nil && currentController == nil && resurrector == nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange == nil: + case chargeController != nil && chargeState == nil && currentController == nil && resurrector != nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange != nil: return &struct { api.Vehicle api.ChargeController - api.VehicleClimater + api.Resurrector api.VehicleOdometer + api.VehicleRange }{ Vehicle: base, ChargeController: &decorateVehicleChargeControllerImpl{ chargeController: chargeController, }, - VehicleClimater: &decorateVehicleVehicleClimaterImpl{ - vehicleClimater: vehicleClimater, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, }, VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ vehicleOdometer: vehicleOdometer, }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, } - case chargeController != nil && chargeState != nil && currentController == nil && resurrector == nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange == nil: + case chargeController != nil && chargeState == nil && currentController == nil && resurrector != nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange != nil: return &struct { api.Vehicle api.ChargeController - api.ChargeState - api.VehicleClimater + api.Resurrector + api.SocLimiter api.VehicleOdometer + api.VehicleRange }{ Vehicle: base, ChargeController: &decorateVehicleChargeControllerImpl{ chargeController: chargeController, }, - ChargeState: &decorateVehicleChargeStateImpl{ - chargeState: chargeState, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, }, - VehicleClimater: &decorateVehicleVehicleClimaterImpl{ - vehicleClimater: vehicleClimater, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, }, VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ vehicleOdometer: vehicleOdometer, }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, } - case chargeController != nil && chargeState == nil && currentController == nil && resurrector == nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange != nil: + case chargeController != nil && chargeState != nil && currentController == nil && resurrector != nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange != nil: return &struct { api.Vehicle api.ChargeController - api.VehicleClimater + api.ChargeState + api.Resurrector api.VehicleOdometer api.VehicleRange }{ @@ -1486,8 +4487,11 @@ func decorateVehicle(base api.Vehicle, chargeState func() (api.ChargeStatus, err ChargeController: &decorateVehicleChargeControllerImpl{ chargeController: chargeController, }, - VehicleClimater: &decorateVehicleVehicleClimaterImpl{ - vehicleClimater: vehicleClimater, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, }, VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ vehicleOdometer: vehicleOdometer, @@ -1497,12 +4501,13 @@ func decorateVehicle(base api.Vehicle, chargeState func() (api.ChargeStatus, err }, } - case chargeController != nil && chargeState != nil && currentController == nil && resurrector == nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange != nil: + case chargeController != nil && chargeState != nil && currentController == nil && resurrector != nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange != nil: return &struct { api.Vehicle api.ChargeController api.ChargeState - api.VehicleClimater + api.Resurrector + api.SocLimiter api.VehicleOdometer api.VehicleRange }{ @@ -1513,8 +4518,11 @@ func decorateVehicle(base api.Vehicle, chargeState func() (api.ChargeStatus, err ChargeState: &decorateVehicleChargeStateImpl{ chargeState: chargeState, }, - VehicleClimater: &decorateVehicleVehicleClimaterImpl{ - vehicleClimater: vehicleClimater, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, }, VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ vehicleOdometer: vehicleOdometer, @@ -1524,66 +4532,79 @@ func decorateVehicle(base api.Vehicle, chargeState func() (api.ChargeStatus, err }, } - case chargeController != nil && chargeState == nil && currentController != nil && resurrector == nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange == nil: + case chargeController != nil && chargeState == nil && currentController == nil && resurrector != nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange == nil: return &struct { api.Vehicle api.ChargeController - api.CurrentController + api.Resurrector + api.VehicleClimater }{ Vehicle: base, ChargeController: &decorateVehicleChargeControllerImpl{ chargeController: chargeController, }, - CurrentController: &decorateVehicleCurrentControllerImpl{ - currentController: currentController, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, }, } - case chargeController != nil && chargeState != nil && currentController != nil && resurrector == nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange == nil: + case chargeController != nil && chargeState == nil && currentController == nil && resurrector != nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange == nil: return &struct { api.Vehicle api.ChargeController - api.ChargeState - api.CurrentController + api.Resurrector + api.SocLimiter + api.VehicleClimater }{ Vehicle: base, ChargeController: &decorateVehicleChargeControllerImpl{ chargeController: chargeController, }, - ChargeState: &decorateVehicleChargeStateImpl{ - chargeState: chargeState, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, }, - CurrentController: &decorateVehicleCurrentControllerImpl{ - currentController: currentController, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, }, } - case chargeController != nil && chargeState == nil && currentController != nil && resurrector == nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange != nil: + case chargeController != nil && chargeState != nil && currentController == nil && resurrector != nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange == nil: return &struct { api.Vehicle api.ChargeController - api.CurrentController - api.VehicleRange + api.ChargeState + api.Resurrector + api.VehicleClimater }{ Vehicle: base, ChargeController: &decorateVehicleChargeControllerImpl{ chargeController: chargeController, }, - CurrentController: &decorateVehicleCurrentControllerImpl{ - currentController: currentController, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, }, - VehicleRange: &decorateVehicleVehicleRangeImpl{ - vehicleRange: vehicleRange, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, }, } - case chargeController != nil && chargeState != nil && currentController != nil && resurrector == nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange != nil: + case chargeController != nil && chargeState != nil && currentController == nil && resurrector != nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange == nil: return &struct { api.Vehicle api.ChargeController api.ChargeState - api.CurrentController - api.VehicleRange + api.Resurrector + api.SocLimiter + api.VehicleClimater }{ Vehicle: base, ChargeController: &decorateVehicleChargeControllerImpl{ @@ -1592,86 +4613,102 @@ func decorateVehicle(base api.Vehicle, chargeState func() (api.ChargeStatus, err ChargeState: &decorateVehicleChargeStateImpl{ chargeState: chargeState, }, - CurrentController: &decorateVehicleCurrentControllerImpl{ - currentController: currentController, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, }, - VehicleRange: &decorateVehicleVehicleRangeImpl{ - vehicleRange: vehicleRange, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, }, } - case chargeController != nil && chargeState == nil && currentController != nil && resurrector == nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange == nil: + case chargeController != nil && chargeState == nil && currentController == nil && resurrector != nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange != nil: return &struct { api.Vehicle api.ChargeController - api.CurrentController - api.VehicleOdometer + api.Resurrector + api.VehicleClimater + api.VehicleRange }{ Vehicle: base, ChargeController: &decorateVehicleChargeControllerImpl{ chargeController: chargeController, }, - CurrentController: &decorateVehicleCurrentControllerImpl{ - currentController: currentController, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, }, - VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ - vehicleOdometer: vehicleOdometer, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, }, } - case chargeController != nil && chargeState != nil && currentController != nil && resurrector == nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange == nil: + case chargeController != nil && chargeState == nil && currentController == nil && resurrector != nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange != nil: return &struct { api.Vehicle api.ChargeController - api.ChargeState - api.CurrentController - api.VehicleOdometer + api.Resurrector + api.SocLimiter + api.VehicleClimater + api.VehicleRange }{ Vehicle: base, ChargeController: &decorateVehicleChargeControllerImpl{ chargeController: chargeController, }, - ChargeState: &decorateVehicleChargeStateImpl{ - chargeState: chargeState, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, }, - CurrentController: &decorateVehicleCurrentControllerImpl{ - currentController: currentController, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, }, - VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ - vehicleOdometer: vehicleOdometer, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, }, } - case chargeController != nil && chargeState == nil && currentController != nil && resurrector == nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange != nil: + case chargeController != nil && chargeState != nil && currentController == nil && resurrector != nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange != nil: return &struct { api.Vehicle api.ChargeController - api.CurrentController - api.VehicleOdometer + api.ChargeState + api.Resurrector + api.VehicleClimater api.VehicleRange }{ Vehicle: base, ChargeController: &decorateVehicleChargeControllerImpl{ chargeController: chargeController, }, - CurrentController: &decorateVehicleCurrentControllerImpl{ - currentController: currentController, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, }, - VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ - vehicleOdometer: vehicleOdometer, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, }, VehicleRange: &decorateVehicleVehicleRangeImpl{ vehicleRange: vehicleRange, }, } - case chargeController != nil && chargeState != nil && currentController != nil && resurrector == nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange != nil: + case chargeController != nil && chargeState != nil && currentController == nil && resurrector != nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange != nil: return &struct { api.Vehicle api.ChargeController api.ChargeState - api.CurrentController - api.VehicleOdometer + api.Resurrector + api.SocLimiter + api.VehicleClimater api.VehicleRange }{ Vehicle: base, @@ -1681,90 +4718,106 @@ func decorateVehicle(base api.Vehicle, chargeState func() (api.ChargeStatus, err ChargeState: &decorateVehicleChargeStateImpl{ chargeState: chargeState, }, - CurrentController: &decorateVehicleCurrentControllerImpl{ - currentController: currentController, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, }, - VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ - vehicleOdometer: vehicleOdometer, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, }, VehicleRange: &decorateVehicleVehicleRangeImpl{ vehicleRange: vehicleRange, }, } - case chargeController != nil && chargeState == nil && currentController != nil && resurrector == nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange == nil: + case chargeController != nil && chargeState == nil && currentController == nil && resurrector != nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange == nil: return &struct { api.Vehicle api.ChargeController - api.CurrentController + api.Resurrector api.VehicleClimater + api.VehicleOdometer }{ Vehicle: base, ChargeController: &decorateVehicleChargeControllerImpl{ chargeController: chargeController, }, - CurrentController: &decorateVehicleCurrentControllerImpl{ - currentController: currentController, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, }, VehicleClimater: &decorateVehicleVehicleClimaterImpl{ vehicleClimater: vehicleClimater, }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, } - case chargeController != nil && chargeState != nil && currentController != nil && resurrector == nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange == nil: + case chargeController != nil && chargeState == nil && currentController == nil && resurrector != nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange == nil: return &struct { api.Vehicle api.ChargeController - api.ChargeState - api.CurrentController + api.Resurrector + api.SocLimiter api.VehicleClimater + api.VehicleOdometer }{ Vehicle: base, ChargeController: &decorateVehicleChargeControllerImpl{ chargeController: chargeController, }, - ChargeState: &decorateVehicleChargeStateImpl{ - chargeState: chargeState, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, }, - CurrentController: &decorateVehicleCurrentControllerImpl{ - currentController: currentController, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, }, VehicleClimater: &decorateVehicleVehicleClimaterImpl{ vehicleClimater: vehicleClimater, }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, } - case chargeController != nil && chargeState == nil && currentController != nil && resurrector == nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange != nil: + case chargeController != nil && chargeState != nil && currentController == nil && resurrector != nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange == nil: return &struct { api.Vehicle api.ChargeController - api.CurrentController + api.ChargeState + api.Resurrector api.VehicleClimater - api.VehicleRange + api.VehicleOdometer }{ Vehicle: base, ChargeController: &decorateVehicleChargeControllerImpl{ chargeController: chargeController, }, - CurrentController: &decorateVehicleCurrentControllerImpl{ - currentController: currentController, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, }, VehicleClimater: &decorateVehicleVehicleClimaterImpl{ vehicleClimater: vehicleClimater, }, - VehicleRange: &decorateVehicleVehicleRangeImpl{ - vehicleRange: vehicleRange, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, }, } - case chargeController != nil && chargeState != nil && currentController != nil && resurrector == nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange != nil: + case chargeController != nil && chargeState != nil && currentController == nil && resurrector != nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange == nil: return &struct { api.Vehicle api.ChargeController api.ChargeState - api.CurrentController + api.Resurrector + api.SocLimiter api.VehicleClimater - api.VehicleRange + api.VehicleOdometer }{ Vehicle: base, ChargeController: &decorateVehicleChargeControllerImpl{ @@ -1773,31 +4826,35 @@ func decorateVehicle(base api.Vehicle, chargeState func() (api.ChargeStatus, err ChargeState: &decorateVehicleChargeStateImpl{ chargeState: chargeState, }, - CurrentController: &decorateVehicleCurrentControllerImpl{ - currentController: currentController, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, }, VehicleClimater: &decorateVehicleVehicleClimaterImpl{ vehicleClimater: vehicleClimater, }, - VehicleRange: &decorateVehicleVehicleRangeImpl{ - vehicleRange: vehicleRange, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, }, } - case chargeController != nil && chargeState == nil && currentController != nil && resurrector == nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange == nil: + case chargeController != nil && chargeState == nil && currentController == nil && resurrector != nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange != nil: return &struct { api.Vehicle api.ChargeController - api.CurrentController + api.Resurrector api.VehicleClimater api.VehicleOdometer + api.VehicleRange }{ Vehicle: base, ChargeController: &decorateVehicleChargeControllerImpl{ chargeController: chargeController, }, - CurrentController: &decorateVehicleCurrentControllerImpl{ - currentController: currentController, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, }, VehicleClimater: &decorateVehicleVehicleClimaterImpl{ vehicleClimater: vehicleClimater, @@ -1805,26 +4862,30 @@ func decorateVehicle(base api.Vehicle, chargeState func() (api.ChargeStatus, err VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ vehicleOdometer: vehicleOdometer, }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, } - case chargeController != nil && chargeState != nil && currentController != nil && resurrector == nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange == nil: + case chargeController != nil && chargeState == nil && currentController == nil && resurrector != nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange != nil: return &struct { api.Vehicle api.ChargeController - api.ChargeState - api.CurrentController + api.Resurrector + api.SocLimiter api.VehicleClimater api.VehicleOdometer + api.VehicleRange }{ Vehicle: base, ChargeController: &decorateVehicleChargeControllerImpl{ chargeController: chargeController, }, - ChargeState: &decorateVehicleChargeStateImpl{ - chargeState: chargeState, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, }, - CurrentController: &decorateVehicleCurrentControllerImpl{ - currentController: currentController, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, }, VehicleClimater: &decorateVehicleVehicleClimaterImpl{ vehicleClimater: vehicleClimater, @@ -1832,13 +4893,17 @@ func decorateVehicle(base api.Vehicle, chargeState func() (api.ChargeStatus, err VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ vehicleOdometer: vehicleOdometer, }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, } - case chargeController != nil && chargeState == nil && currentController != nil && resurrector == nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange != nil: + case chargeController != nil && chargeState != nil && currentController == nil && resurrector != nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange != nil: return &struct { api.Vehicle api.ChargeController - api.CurrentController + api.ChargeState + api.Resurrector api.VehicleClimater api.VehicleOdometer api.VehicleRange @@ -1847,8 +4912,11 @@ func decorateVehicle(base api.Vehicle, chargeState func() (api.ChargeStatus, err ChargeController: &decorateVehicleChargeControllerImpl{ chargeController: chargeController, }, - CurrentController: &decorateVehicleCurrentControllerImpl{ - currentController: currentController, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, }, VehicleClimater: &decorateVehicleVehicleClimaterImpl{ vehicleClimater: vehicleClimater, @@ -1861,12 +4929,13 @@ func decorateVehicle(base api.Vehicle, chargeState func() (api.ChargeStatus, err }, } - case chargeController != nil && chargeState != nil && currentController != nil && resurrector == nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange != nil: + case chargeController != nil && chargeState != nil && currentController == nil && resurrector != nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange != nil: return &struct { api.Vehicle api.ChargeController api.ChargeState - api.CurrentController + api.Resurrector + api.SocLimiter api.VehicleClimater api.VehicleOdometer api.VehicleRange @@ -1878,8 +4947,11 @@ func decorateVehicle(base api.Vehicle, chargeState func() (api.ChargeStatus, err ChargeState: &decorateVehicleChargeStateImpl{ chargeState: chargeState, }, - CurrentController: &decorateVehicleCurrentControllerImpl{ - currentController: currentController, + Resurrector: &decorateVehicleResurrectorImpl{ + resurrector: resurrector, + }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, }, VehicleClimater: &decorateVehicleVehicleClimaterImpl{ vehicleClimater: vehicleClimater, @@ -1892,66 +4964,79 @@ func decorateVehicle(base api.Vehicle, chargeState func() (api.ChargeStatus, err }, } - case chargeController != nil && chargeState == nil && currentController == nil && resurrector != nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange == nil: + case chargeController != nil && chargeState == nil && currentController != nil && resurrector != nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange == nil: return &struct { api.Vehicle api.ChargeController + api.CurrentController api.Resurrector }{ Vehicle: base, ChargeController: &decorateVehicleChargeControllerImpl{ chargeController: chargeController, }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, Resurrector: &decorateVehicleResurrectorImpl{ resurrector: resurrector, }, } - case chargeController != nil && chargeState != nil && currentController == nil && resurrector != nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange == nil: + case chargeController != nil && chargeState == nil && currentController != nil && resurrector != nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange == nil: return &struct { api.Vehicle api.ChargeController - api.ChargeState + api.CurrentController api.Resurrector + api.SocLimiter }{ Vehicle: base, ChargeController: &decorateVehicleChargeControllerImpl{ chargeController: chargeController, }, - ChargeState: &decorateVehicleChargeStateImpl{ - chargeState: chargeState, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, }, Resurrector: &decorateVehicleResurrectorImpl{ resurrector: resurrector, }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, } - case chargeController != nil && chargeState == nil && currentController == nil && resurrector != nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange != nil: + case chargeController != nil && chargeState != nil && currentController != nil && resurrector != nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange == nil: return &struct { api.Vehicle api.ChargeController + api.ChargeState + api.CurrentController api.Resurrector - api.VehicleRange }{ Vehicle: base, ChargeController: &decorateVehicleChargeControllerImpl{ chargeController: chargeController, }, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, Resurrector: &decorateVehicleResurrectorImpl{ resurrector: resurrector, }, - VehicleRange: &decorateVehicleVehicleRangeImpl{ - vehicleRange: vehicleRange, - }, } - case chargeController != nil && chargeState != nil && currentController == nil && resurrector != nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange != nil: + case chargeController != nil && chargeState != nil && currentController != nil && resurrector != nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange == nil: return &struct { api.Vehicle api.ChargeController api.ChargeState + api.CurrentController api.Resurrector - api.VehicleRange + api.SocLimiter }{ Vehicle: base, ChargeController: &decorateVehicleChargeControllerImpl{ @@ -1960,86 +5045,102 @@ func decorateVehicle(base api.Vehicle, chargeState func() (api.ChargeStatus, err ChargeState: &decorateVehicleChargeStateImpl{ chargeState: chargeState, }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, Resurrector: &decorateVehicleResurrectorImpl{ resurrector: resurrector, }, - VehicleRange: &decorateVehicleVehicleRangeImpl{ - vehicleRange: vehicleRange, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, }, } - case chargeController != nil && chargeState == nil && currentController == nil && resurrector != nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange == nil: + case chargeController != nil && chargeState == nil && currentController != nil && resurrector != nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange != nil: return &struct { api.Vehicle api.ChargeController + api.CurrentController api.Resurrector - api.VehicleOdometer + api.VehicleRange }{ Vehicle: base, ChargeController: &decorateVehicleChargeControllerImpl{ chargeController: chargeController, }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, Resurrector: &decorateVehicleResurrectorImpl{ resurrector: resurrector, }, - VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ - vehicleOdometer: vehicleOdometer, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, }, } - case chargeController != nil && chargeState != nil && currentController == nil && resurrector != nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange == nil: + case chargeController != nil && chargeState == nil && currentController != nil && resurrector != nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange != nil: return &struct { api.Vehicle api.ChargeController - api.ChargeState + api.CurrentController api.Resurrector - api.VehicleOdometer + api.SocLimiter + api.VehicleRange }{ Vehicle: base, ChargeController: &decorateVehicleChargeControllerImpl{ chargeController: chargeController, }, - ChargeState: &decorateVehicleChargeStateImpl{ - chargeState: chargeState, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, }, Resurrector: &decorateVehicleResurrectorImpl{ resurrector: resurrector, }, - VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ - vehicleOdometer: vehicleOdometer, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, }, } - case chargeController != nil && chargeState == nil && currentController == nil && resurrector != nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange != nil: + case chargeController != nil && chargeState != nil && currentController != nil && resurrector != nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange != nil: return &struct { api.Vehicle api.ChargeController + api.ChargeState + api.CurrentController api.Resurrector - api.VehicleOdometer api.VehicleRange }{ Vehicle: base, ChargeController: &decorateVehicleChargeControllerImpl{ chargeController: chargeController, }, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, Resurrector: &decorateVehicleResurrectorImpl{ resurrector: resurrector, }, - VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ - vehicleOdometer: vehicleOdometer, - }, VehicleRange: &decorateVehicleVehicleRangeImpl{ vehicleRange: vehicleRange, }, } - case chargeController != nil && chargeState != nil && currentController == nil && resurrector != nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange != nil: + case chargeController != nil && chargeState != nil && currentController != nil && resurrector != nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange != nil: return &struct { api.Vehicle api.ChargeController api.ChargeState + api.CurrentController api.Resurrector - api.VehicleOdometer + api.SocLimiter api.VehicleRange }{ Vehicle: base, @@ -2049,90 +5150,106 @@ func decorateVehicle(base api.Vehicle, chargeState func() (api.ChargeStatus, err ChargeState: &decorateVehicleChargeStateImpl{ chargeState: chargeState, }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, Resurrector: &decorateVehicleResurrectorImpl{ resurrector: resurrector, }, - VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ - vehicleOdometer: vehicleOdometer, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, }, VehicleRange: &decorateVehicleVehicleRangeImpl{ vehicleRange: vehicleRange, }, } - case chargeController != nil && chargeState == nil && currentController == nil && resurrector != nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange == nil: + case chargeController != nil && chargeState == nil && currentController != nil && resurrector != nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange == nil: return &struct { api.Vehicle api.ChargeController + api.CurrentController api.Resurrector - api.VehicleClimater + api.VehicleOdometer }{ Vehicle: base, ChargeController: &decorateVehicleChargeControllerImpl{ chargeController: chargeController, }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, Resurrector: &decorateVehicleResurrectorImpl{ resurrector: resurrector, }, - VehicleClimater: &decorateVehicleVehicleClimaterImpl{ - vehicleClimater: vehicleClimater, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, }, } - case chargeController != nil && chargeState != nil && currentController == nil && resurrector != nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange == nil: + case chargeController != nil && chargeState == nil && currentController != nil && resurrector != nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange == nil: return &struct { api.Vehicle api.ChargeController - api.ChargeState + api.CurrentController api.Resurrector - api.VehicleClimater + api.SocLimiter + api.VehicleOdometer }{ Vehicle: base, ChargeController: &decorateVehicleChargeControllerImpl{ chargeController: chargeController, }, - ChargeState: &decorateVehicleChargeStateImpl{ - chargeState: chargeState, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, }, Resurrector: &decorateVehicleResurrectorImpl{ resurrector: resurrector, }, - VehicleClimater: &decorateVehicleVehicleClimaterImpl{ - vehicleClimater: vehicleClimater, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, }, } - case chargeController != nil && chargeState == nil && currentController == nil && resurrector != nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange != nil: + case chargeController != nil && chargeState != nil && currentController != nil && resurrector != nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange == nil: return &struct { api.Vehicle api.ChargeController + api.ChargeState + api.CurrentController api.Resurrector - api.VehicleClimater - api.VehicleRange + api.VehicleOdometer }{ Vehicle: base, ChargeController: &decorateVehicleChargeControllerImpl{ chargeController: chargeController, }, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, Resurrector: &decorateVehicleResurrectorImpl{ resurrector: resurrector, }, - VehicleClimater: &decorateVehicleVehicleClimaterImpl{ - vehicleClimater: vehicleClimater, - }, - VehicleRange: &decorateVehicleVehicleRangeImpl{ - vehicleRange: vehicleRange, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, }, } - case chargeController != nil && chargeState != nil && currentController == nil && resurrector != nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange != nil: + case chargeController != nil && chargeState != nil && currentController != nil && resurrector != nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange == nil: return &struct { api.Vehicle api.ChargeController api.ChargeState + api.CurrentController api.Resurrector - api.VehicleClimater - api.VehicleRange + api.SocLimiter + api.VehicleOdometer }{ Vehicle: base, ChargeController: &decorateVehicleChargeControllerImpl{ @@ -2141,73 +5258,85 @@ func decorateVehicle(base api.Vehicle, chargeState func() (api.ChargeStatus, err ChargeState: &decorateVehicleChargeStateImpl{ chargeState: chargeState, }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, Resurrector: &decorateVehicleResurrectorImpl{ resurrector: resurrector, }, - VehicleClimater: &decorateVehicleVehicleClimaterImpl{ - vehicleClimater: vehicleClimater, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, }, - VehicleRange: &decorateVehicleVehicleRangeImpl{ - vehicleRange: vehicleRange, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, }, } - case chargeController != nil && chargeState == nil && currentController == nil && resurrector != nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange == nil: + case chargeController != nil && chargeState == nil && currentController != nil && resurrector != nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange != nil: return &struct { api.Vehicle api.ChargeController + api.CurrentController api.Resurrector - api.VehicleClimater api.VehicleOdometer + api.VehicleRange }{ Vehicle: base, ChargeController: &decorateVehicleChargeControllerImpl{ chargeController: chargeController, }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, Resurrector: &decorateVehicleResurrectorImpl{ resurrector: resurrector, }, - VehicleClimater: &decorateVehicleVehicleClimaterImpl{ - vehicleClimater: vehicleClimater, - }, VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ vehicleOdometer: vehicleOdometer, }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, } - case chargeController != nil && chargeState != nil && currentController == nil && resurrector != nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange == nil: + case chargeController != nil && chargeState == nil && currentController != nil && resurrector != nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange != nil: return &struct { api.Vehicle api.ChargeController - api.ChargeState + api.CurrentController api.Resurrector - api.VehicleClimater + api.SocLimiter api.VehicleOdometer + api.VehicleRange }{ Vehicle: base, ChargeController: &decorateVehicleChargeControllerImpl{ chargeController: chargeController, }, - ChargeState: &decorateVehicleChargeStateImpl{ - chargeState: chargeState, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, }, Resurrector: &decorateVehicleResurrectorImpl{ resurrector: resurrector, }, - VehicleClimater: &decorateVehicleVehicleClimaterImpl{ - vehicleClimater: vehicleClimater, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, }, VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ vehicleOdometer: vehicleOdometer, }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, } - case chargeController != nil && chargeState == nil && currentController == nil && resurrector != nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange != nil: + case chargeController != nil && chargeState != nil && currentController != nil && resurrector != nil && socLimiter == nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange != nil: return &struct { api.Vehicle api.ChargeController + api.ChargeState + api.CurrentController api.Resurrector - api.VehicleClimater api.VehicleOdometer api.VehicleRange }{ @@ -2215,12 +5344,15 @@ func decorateVehicle(base api.Vehicle, chargeState func() (api.ChargeStatus, err ChargeController: &decorateVehicleChargeControllerImpl{ chargeController: chargeController, }, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, Resurrector: &decorateVehicleResurrectorImpl{ resurrector: resurrector, }, - VehicleClimater: &decorateVehicleVehicleClimaterImpl{ - vehicleClimater: vehicleClimater, - }, VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ vehicleOdometer: vehicleOdometer, }, @@ -2229,13 +5361,14 @@ func decorateVehicle(base api.Vehicle, chargeState func() (api.ChargeStatus, err }, } - case chargeController != nil && chargeState != nil && currentController == nil && resurrector != nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange != nil: + case chargeController != nil && chargeState != nil && currentController != nil && resurrector != nil && socLimiter != nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange != nil: return &struct { api.Vehicle api.ChargeController api.ChargeState + api.CurrentController api.Resurrector - api.VehicleClimater + api.SocLimiter api.VehicleOdometer api.VehicleRange }{ @@ -2246,11 +5379,14 @@ func decorateVehicle(base api.Vehicle, chargeState func() (api.ChargeStatus, err ChargeState: &decorateVehicleChargeStateImpl{ chargeState: chargeState, }, + CurrentController: &decorateVehicleCurrentControllerImpl{ + currentController: currentController, + }, Resurrector: &decorateVehicleResurrectorImpl{ resurrector: resurrector, }, - VehicleClimater: &decorateVehicleVehicleClimaterImpl{ - vehicleClimater: vehicleClimater, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, }, VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ vehicleOdometer: vehicleOdometer, @@ -2260,12 +5396,13 @@ func decorateVehicle(base api.Vehicle, chargeState func() (api.ChargeStatus, err }, } - case chargeController != nil && chargeState == nil && currentController != nil && resurrector != nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange == nil: + case chargeController != nil && chargeState == nil && currentController != nil && resurrector != nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange == nil: return &struct { api.Vehicle api.ChargeController api.CurrentController api.Resurrector + api.VehicleClimater }{ Vehicle: base, ChargeController: &decorateVehicleChargeControllerImpl{ @@ -2277,62 +5414,74 @@ func decorateVehicle(base api.Vehicle, chargeState func() (api.ChargeStatus, err Resurrector: &decorateVehicleResurrectorImpl{ resurrector: resurrector, }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, } - case chargeController != nil && chargeState != nil && currentController != nil && resurrector != nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange == nil: + case chargeController != nil && chargeState == nil && currentController != nil && resurrector != nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange == nil: return &struct { api.Vehicle api.ChargeController - api.ChargeState api.CurrentController api.Resurrector + api.SocLimiter + api.VehicleClimater }{ Vehicle: base, ChargeController: &decorateVehicleChargeControllerImpl{ chargeController: chargeController, }, - ChargeState: &decorateVehicleChargeStateImpl{ - chargeState: chargeState, - }, CurrentController: &decorateVehicleCurrentControllerImpl{ currentController: currentController, }, Resurrector: &decorateVehicleResurrectorImpl{ resurrector: resurrector, }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, } - case chargeController != nil && chargeState == nil && currentController != nil && resurrector != nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange != nil: + case chargeController != nil && chargeState != nil && currentController != nil && resurrector != nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange == nil: return &struct { api.Vehicle api.ChargeController + api.ChargeState api.CurrentController api.Resurrector - api.VehicleRange + api.VehicleClimater }{ Vehicle: base, ChargeController: &decorateVehicleChargeControllerImpl{ chargeController: chargeController, }, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, CurrentController: &decorateVehicleCurrentControllerImpl{ currentController: currentController, }, Resurrector: &decorateVehicleResurrectorImpl{ resurrector: resurrector, }, - VehicleRange: &decorateVehicleVehicleRangeImpl{ - vehicleRange: vehicleRange, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, }, } - case chargeController != nil && chargeState != nil && currentController != nil && resurrector != nil && vehicleClimater == nil && vehicleOdometer == nil && vehicleRange != nil: + case chargeController != nil && chargeState != nil && currentController != nil && resurrector != nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange == nil: return &struct { api.Vehicle api.ChargeController api.ChargeState api.CurrentController api.Resurrector - api.VehicleRange + api.SocLimiter + api.VehicleClimater }{ Vehicle: base, ChargeController: &decorateVehicleChargeControllerImpl{ @@ -2347,18 +5496,22 @@ func decorateVehicle(base api.Vehicle, chargeState func() (api.ChargeStatus, err Resurrector: &decorateVehicleResurrectorImpl{ resurrector: resurrector, }, - VehicleRange: &decorateVehicleVehicleRangeImpl{ - vehicleRange: vehicleRange, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, }, } - case chargeController != nil && chargeState == nil && currentController != nil && resurrector != nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange == nil: + case chargeController != nil && chargeState == nil && currentController != nil && resurrector != nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange != nil: return &struct { api.Vehicle api.ChargeController api.CurrentController api.Resurrector - api.VehicleOdometer + api.VehicleClimater + api.VehicleRange }{ Vehicle: base, ChargeController: &decorateVehicleChargeControllerImpl{ @@ -2370,73 +5523,85 @@ func decorateVehicle(base api.Vehicle, chargeState func() (api.ChargeStatus, err Resurrector: &decorateVehicleResurrectorImpl{ resurrector: resurrector, }, - VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ - vehicleOdometer: vehicleOdometer, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, }, } - case chargeController != nil && chargeState != nil && currentController != nil && resurrector != nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange == nil: + case chargeController != nil && chargeState == nil && currentController != nil && resurrector != nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange != nil: return &struct { api.Vehicle api.ChargeController - api.ChargeState api.CurrentController api.Resurrector - api.VehicleOdometer + api.SocLimiter + api.VehicleClimater + api.VehicleRange }{ Vehicle: base, ChargeController: &decorateVehicleChargeControllerImpl{ chargeController: chargeController, }, - ChargeState: &decorateVehicleChargeStateImpl{ - chargeState: chargeState, - }, CurrentController: &decorateVehicleCurrentControllerImpl{ currentController: currentController, }, Resurrector: &decorateVehicleResurrectorImpl{ resurrector: resurrector, }, - VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ - vehicleOdometer: vehicleOdometer, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, + }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, }, } - case chargeController != nil && chargeState == nil && currentController != nil && resurrector != nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange != nil: + case chargeController != nil && chargeState != nil && currentController != nil && resurrector != nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange != nil: return &struct { api.Vehicle api.ChargeController + api.ChargeState api.CurrentController api.Resurrector - api.VehicleOdometer + api.VehicleClimater api.VehicleRange }{ Vehicle: base, ChargeController: &decorateVehicleChargeControllerImpl{ chargeController: chargeController, }, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, CurrentController: &decorateVehicleCurrentControllerImpl{ currentController: currentController, }, Resurrector: &decorateVehicleResurrectorImpl{ resurrector: resurrector, }, - VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ - vehicleOdometer: vehicleOdometer, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, }, VehicleRange: &decorateVehicleVehicleRangeImpl{ vehicleRange: vehicleRange, }, } - case chargeController != nil && chargeState != nil && currentController != nil && resurrector != nil && vehicleClimater == nil && vehicleOdometer != nil && vehicleRange != nil: + case chargeController != nil && chargeState != nil && currentController != nil && resurrector != nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange != nil: return &struct { api.Vehicle api.ChargeController api.ChargeState api.CurrentController api.Resurrector - api.VehicleOdometer + api.SocLimiter + api.VehicleClimater api.VehicleRange }{ Vehicle: base, @@ -2452,21 +5617,25 @@ func decorateVehicle(base api.Vehicle, chargeState func() (api.ChargeStatus, err Resurrector: &decorateVehicleResurrectorImpl{ resurrector: resurrector, }, - VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ - vehicleOdometer: vehicleOdometer, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, + VehicleClimater: &decorateVehicleVehicleClimaterImpl{ + vehicleClimater: vehicleClimater, }, VehicleRange: &decorateVehicleVehicleRangeImpl{ vehicleRange: vehicleRange, }, } - case chargeController != nil && chargeState == nil && currentController != nil && resurrector != nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange == nil: + case chargeController != nil && chargeState == nil && currentController != nil && resurrector != nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange == nil: return &struct { api.Vehicle api.ChargeController api.CurrentController api.Resurrector api.VehicleClimater + api.VehicleOdometer }{ Vehicle: base, ChargeController: &decorateVehicleChargeControllerImpl{ @@ -2481,48 +5650,59 @@ func decorateVehicle(base api.Vehicle, chargeState func() (api.ChargeStatus, err VehicleClimater: &decorateVehicleVehicleClimaterImpl{ vehicleClimater: vehicleClimater, }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, } - case chargeController != nil && chargeState != nil && currentController != nil && resurrector != nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange == nil: + case chargeController != nil && chargeState == nil && currentController != nil && resurrector != nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange == nil: return &struct { api.Vehicle api.ChargeController - api.ChargeState api.CurrentController api.Resurrector + api.SocLimiter api.VehicleClimater + api.VehicleOdometer }{ Vehicle: base, ChargeController: &decorateVehicleChargeControllerImpl{ chargeController: chargeController, }, - ChargeState: &decorateVehicleChargeStateImpl{ - chargeState: chargeState, - }, CurrentController: &decorateVehicleCurrentControllerImpl{ currentController: currentController, }, Resurrector: &decorateVehicleResurrectorImpl{ resurrector: resurrector, }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, VehicleClimater: &decorateVehicleVehicleClimaterImpl{ vehicleClimater: vehicleClimater, }, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, + }, } - case chargeController != nil && chargeState == nil && currentController != nil && resurrector != nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange != nil: + case chargeController != nil && chargeState != nil && currentController != nil && resurrector != nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange == nil: return &struct { api.Vehicle api.ChargeController + api.ChargeState api.CurrentController api.Resurrector api.VehicleClimater - api.VehicleRange + api.VehicleOdometer }{ Vehicle: base, ChargeController: &decorateVehicleChargeControllerImpl{ chargeController: chargeController, }, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, CurrentController: &decorateVehicleCurrentControllerImpl{ currentController: currentController, }, @@ -2532,20 +5712,21 @@ func decorateVehicle(base api.Vehicle, chargeState func() (api.ChargeStatus, err VehicleClimater: &decorateVehicleVehicleClimaterImpl{ vehicleClimater: vehicleClimater, }, - VehicleRange: &decorateVehicleVehicleRangeImpl{ - vehicleRange: vehicleRange, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, }, } - case chargeController != nil && chargeState != nil && currentController != nil && resurrector != nil && vehicleClimater != nil && vehicleOdometer == nil && vehicleRange != nil: + case chargeController != nil && chargeState != nil && currentController != nil && resurrector != nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange == nil: return &struct { api.Vehicle api.ChargeController api.ChargeState api.CurrentController api.Resurrector + api.SocLimiter api.VehicleClimater - api.VehicleRange + api.VehicleOdometer }{ Vehicle: base, ChargeController: &decorateVehicleChargeControllerImpl{ @@ -2560,15 +5741,18 @@ func decorateVehicle(base api.Vehicle, chargeState func() (api.ChargeStatus, err Resurrector: &decorateVehicleResurrectorImpl{ resurrector: resurrector, }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, VehicleClimater: &decorateVehicleVehicleClimaterImpl{ vehicleClimater: vehicleClimater, }, - VehicleRange: &decorateVehicleVehicleRangeImpl{ - vehicleRange: vehicleRange, + VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ + vehicleOdometer: vehicleOdometer, }, } - case chargeController != nil && chargeState == nil && currentController != nil && resurrector != nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange == nil: + case chargeController != nil && chargeState == nil && currentController != nil && resurrector != nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange != nil: return &struct { api.Vehicle api.ChargeController @@ -2576,6 +5760,7 @@ func decorateVehicle(base api.Vehicle, chargeState func() (api.ChargeStatus, err api.Resurrector api.VehicleClimater api.VehicleOdometer + api.VehicleRange }{ Vehicle: base, ChargeController: &decorateVehicleChargeControllerImpl{ @@ -2593,43 +5778,51 @@ func decorateVehicle(base api.Vehicle, chargeState func() (api.ChargeStatus, err VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ vehicleOdometer: vehicleOdometer, }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, } - case chargeController != nil && chargeState != nil && currentController != nil && resurrector != nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange == nil: + case chargeController != nil && chargeState == nil && currentController != nil && resurrector != nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange != nil: return &struct { api.Vehicle api.ChargeController - api.ChargeState api.CurrentController api.Resurrector + api.SocLimiter api.VehicleClimater api.VehicleOdometer + api.VehicleRange }{ Vehicle: base, ChargeController: &decorateVehicleChargeControllerImpl{ chargeController: chargeController, }, - ChargeState: &decorateVehicleChargeStateImpl{ - chargeState: chargeState, - }, CurrentController: &decorateVehicleCurrentControllerImpl{ currentController: currentController, }, Resurrector: &decorateVehicleResurrectorImpl{ resurrector: resurrector, }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, VehicleClimater: &decorateVehicleVehicleClimaterImpl{ vehicleClimater: vehicleClimater, }, VehicleOdometer: &decorateVehicleVehicleOdometerImpl{ vehicleOdometer: vehicleOdometer, }, + VehicleRange: &decorateVehicleVehicleRangeImpl{ + vehicleRange: vehicleRange, + }, } - case chargeController != nil && chargeState == nil && currentController != nil && resurrector != nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange != nil: + case chargeController != nil && chargeState != nil && currentController != nil && resurrector != nil && socLimiter == nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange != nil: return &struct { api.Vehicle api.ChargeController + api.ChargeState api.CurrentController api.Resurrector api.VehicleClimater @@ -2640,6 +5833,9 @@ func decorateVehicle(base api.Vehicle, chargeState func() (api.ChargeStatus, err ChargeController: &decorateVehicleChargeControllerImpl{ chargeController: chargeController, }, + ChargeState: &decorateVehicleChargeStateImpl{ + chargeState: chargeState, + }, CurrentController: &decorateVehicleCurrentControllerImpl{ currentController: currentController, }, @@ -2657,13 +5853,14 @@ func decorateVehicle(base api.Vehicle, chargeState func() (api.ChargeStatus, err }, } - case chargeController != nil && chargeState != nil && currentController != nil && resurrector != nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange != nil: + case chargeController != nil && chargeState != nil && currentController != nil && resurrector != nil && socLimiter != nil && vehicleClimater != nil && vehicleOdometer != nil && vehicleRange != nil: return &struct { api.Vehicle api.ChargeController api.ChargeState api.CurrentController api.Resurrector + api.SocLimiter api.VehicleClimater api.VehicleOdometer api.VehicleRange @@ -2681,6 +5878,9 @@ func decorateVehicle(base api.Vehicle, chargeState func() (api.ChargeStatus, err Resurrector: &decorateVehicleResurrectorImpl{ resurrector: resurrector, }, + SocLimiter: &decorateVehicleSocLimiterImpl{ + socLimiter: socLimiter, + }, VehicleClimater: &decorateVehicleVehicleClimaterImpl{ vehicleClimater: vehicleClimater, }, @@ -2728,6 +5928,14 @@ func (impl *decorateVehicleResurrectorImpl) WakeUp() error { return impl.resurrector() } +type decorateVehicleSocLimiterImpl struct { + socLimiter func() (int64, error) +} + +func (impl *decorateVehicleSocLimiterImpl) GetLimitSoc() (int64, error) { + return impl.socLimiter() +} + type decorateVehicleVehicleClimaterImpl struct { vehicleClimater func() (bool, error) } diff --git a/vehicle/vw/id/provider.go b/vehicle/vw/id/provider.go index 94c4cb1bc9..cf0156feb4 100644 --- a/vehicle/vw/id/provider.go +++ b/vehicle/vw/id/provider.go @@ -146,14 +146,14 @@ func (v *Provider) Climater() (bool, error) { var _ api.SocLimiter = (*Provider)(nil) -// TargetSoc implements the api.SocLimiter interface -func (v *Provider) TargetSoc() (float64, error) { +// GetLimitSoc implements the api.SocLimiter interface +func (v *Provider) GetLimitSoc() (int64, error) { res, err := v.statusG() if err != nil || res.Charging == nil || res.Charging.ChargingSettings.Value.TargetSOCPct == nil { return 0, api.ErrNotAvailable } - return float64(*res.Charging.ChargingSettings.Value.TargetSOCPct), nil + return int64(*res.Charging.ChargingSettings.Value.TargetSOCPct), nil } var _ api.ChargeController = (*Provider)(nil)