У меня есть следующее:
fn foo(f: &Option<Huge>) {}
fn bar(a: &Option<Huge>, b: &Option<Huge>) {
foo(a.or(b));
}
Huge
- это большая структура, которую я не хочу копировать или клонировать. Это не работает, потому что .or()
принимает a
и b
по значению.
Есть ли простое решение? Я, вероятно, могу сделать что-то вроде этого:
foo(if a.is_some() { a } else { b });
Конечно, есть лучший способ?