fn replace_opt<T: Clone>(original: &mut Option<T>, extra: &Option<T>) {
    if let Some(val) = extra {
        let _ = original.replace(val.clone());
    }
}
// New value takes precedent if it exists
New value takes precedent if it exists
New value takes precedent if it exists
fn replace_opt<T: Clone>(original: &mut Option<T>, extra: &Option<T>) {
    if let Some(val) = extra {
        let _ = original.replace(val.clone());
    }
}
fn replace_opt < T : Clone > ( original : & mut Option < T > , extra : & Option < T > ) { if let Some ( val ) = extra { let _ = original . replace ( val . clone ( ) ) ; } }
New value takes precedent if it exists
New value takes precedent if it exists
original
&mut Option<T>
extra
&Option<T>