bind method
Implementation
List<SlotBinding> bind({
required List<SlotDefinition> slots,
required List<String> deviceIds,
Map<String, Map<String, dynamic>> deviceMetadata = const {},
}) {
final result = <SlotBinding>[];
final used = <String>{};
for (final slot in slots) {
final deviceId = _match(
slot.binding,
deviceIds,
deviceMetadata,
used,
);
if (deviceId == null) {
throw SlotBindingException(slot.slotId, 'No matching device');
}
_logger.debug('Bound slot',
{'slotId': slot.slotId, 'deviceId': deviceId});
result.add(SlotBinding(slotId: slot.slotId, deviceId: deviceId));
used.add(deviceId);
}
return result;
}