У меня есть три структуры:
struct A;
struct B;
struct C {
a: Option<A>,
b: Option<B>
}
Учитывая данные Vec<A>
и Vec<B>
и некоторую функцию предиката, я хочу создать вывод Vec<C>
, который является комбинацией элементов входные данные, что-то вроде следующего:
let aVec: Vec<A> = vec![];
let bVec: Vec<B> = vec![];
let mut cVec: Vec<C> = vec![];
for a in aVec {
if let Some(b) = bVec.into_iter().find(predicate) {
cVec.push(C{a: Some(a), b: Some(b)});
}
}
Есть ли способ сделать это без необходимости B
для копирования? Оба входных вектора не требуются после операции. Кроме того, возможно ли это без l oop?