veloren_common/util/
option.rs

1pub fn either_with<T, F>(opt1: Option<T>, opt2: Option<T>, f: F) -> Option<T>
2where
3    F: FnOnce(T, T) -> T,
4{
5    match (opt1, opt2) {
6        (Some(v1), Some(v2)) => Some(f(v1, v2)),
7        (Some(v), None) | (None, Some(v)) => Some(v),
8        (None, None) => None,
9    }
10}