Эта функция работает хорошо: когда она находит адаптер, она останавливается и возвращается.
fn choose_adapter(instance: vk::Instance) -> Option<Adapter<vk::Backend>> {
let adapters = instance.enumerate_adapters();
for adapter in adapters {
if adapter.info.device_type == DeviceType::DiscreteGpu {
return Some(adapter);
}
}
return None;
}
Следующая модификация не компилируется.При добавлении ;
к Some(adapter)
оно падает и всегда оценивается как None
.
let adapter = match {
let adapters = instance.enumerate_adapters();
for adapter in adapters {
if adapter.info.device_type == DeviceType::DiscreteGpu {
Some(adapter)
}
}
None
} {
Some(val) => val,
None => panic!(""),
};
Как заставить последнее выражение работать как функция?