42 lines
912 B
Go
42 lines
912 B
Go
package cast
|
|
|
|
import "net"
|
|
|
|
type DeviceType string
|
|
|
|
type Device interface {
|
|
DeviceType() DeviceType
|
|
DeviceHost() net.IP
|
|
DevicePort() int
|
|
DeviceName() string
|
|
DeviceID() string
|
|
}
|
|
|
|
type legacyDevice struct {
|
|
Device `json:"-"`
|
|
UUID string `goja:"uuid" json:"uuid"`
|
|
Host string `goja:"host" json:"host"`
|
|
Port int `goja:"port" json:"port"`
|
|
Name string `goja:"name" json:"name"`
|
|
Type string `goja:"type" json:"type"`
|
|
}
|
|
|
|
func toLegacyDevice(device Device) *legacyDevice {
|
|
return &legacyDevice{
|
|
Device: device,
|
|
UUID: device.DeviceID(),
|
|
Host: device.DeviceHost().String(),
|
|
Port: device.DevicePort(),
|
|
Name: device.DeviceName(),
|
|
Type: string(device.DeviceType()),
|
|
}
|
|
}
|
|
|
|
func toLegacyDevices(devices ...Device) []*legacyDevice {
|
|
legacyDevices := make([]*legacyDevice, len(devices))
|
|
for i, d := range devices {
|
|
legacyDevices[i] = toLegacyDevice(d)
|
|
}
|
|
return legacyDevices
|
|
}
|