case 1.
v1 = None
v2 = Some(vec[..])
result = Some(vec[..])
case 2.
v1 = Some(vec[..])
v2 = None
result = Some(vec[..])
case 3.
v1 = Some(vec[..])
v2 = Some(vec[..])
result = Some(vec[..])
case 4.
v1 = None
v2 = None
result = None
Is there a generalized way to implement this?