code: func (l VirtualDeviceList) SelectBootOrder(order []types.BaseVirtualMachineBootOptionsBootableDevice) VirtualDeviceList {
  	var devices VirtualDeviceList
  
  	for _, bd := range order {
  		for _, device := range l {
  			if kind, ok := bootableDevices[l.Type(device)]; ok {
  				if reflect.DeepEqual(kind(device), bd) {
  					devices = append(devices, device)
  				}
  			}
  		}
  	}
  
  	return devices
  }
docs: // SelectBootOrder returns an ordered list of devices matching the given bootable device order