mercedes-byocar-exporter/internal/exporters/interface.go
Knut Ahlers b51d41f15e
Add support for electric vehicles
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2022-12-04 00:27:08 +01:00

48 lines
1.1 KiB
Go

package exporters
import "github.com/Luzifer/mercedes-byocar-exporter/internal/mercedes"
type (
Exporter interface {
SetElectricStatus(vehicleID string, es mercedes.ElectricStatus)
SetFuelStatus(vehicleID string, fs mercedes.FuelStatus)
SetLockStatus(vehicleID string, ls mercedes.LockStatus)
SetPayAsYouGo(vehicleID string, p mercedes.PayAsYouDriveInsurance)
SetVehicleStatus(vehicleID string, vs mercedes.VehicleStatus)
}
Set []Exporter
)
var _ Exporter = Set{}
func (s Set) SetElectricStatus(vehicleID string, es mercedes.ElectricStatus) {
for _, e := range s {
e.SetElectricStatus(vehicleID, es)
}
}
func (s Set) SetFuelStatus(vehicleID string, fs mercedes.FuelStatus) {
for _, e := range s {
e.SetFuelStatus(vehicleID, fs)
}
}
func (s Set) SetLockStatus(vehicleID string, ls mercedes.LockStatus) {
for _, e := range s {
e.SetLockStatus(vehicleID, ls)
}
}
func (s Set) SetPayAsYouGo(vehicleID string, p mercedes.PayAsYouDriveInsurance) {
for _, e := range s {
e.SetPayAsYouGo(vehicleID, p)
}
}
func (s Set) SetVehicleStatus(vehicleID string, vs mercedes.VehicleStatus) {
for _, e := range s {
e.SetVehicleStatus(vehicleID, vs)
}
}