package types import ( "fmt" "slices" ) type Devices []Device func (devices Devices) Get(macAddr string) (Device, error) { index := devices.GetIndex(macAddr) if index == -1 { return Device{}, fmt.Errorf("Faild to get device:", macAddr) } return devices[index], nil } func (devices Devices) GetIndex(macAddr string) int { return slices.IndexFunc(devices, func(device Device) bool { return device.Address == macAddr }) }