pub fn join_data_opt_(mut data: &mut Option<T>, other: &Option<T>) -> JoinResult {
        match (&mut data, other) {
            (Some(data1), Some(data2)) => data1.join(data2),
            (None, Some(d)) => {
                *data = Some(d.clone());
                JoinResult::Changed
            }
            (_, None) => JoinResult::Unchanged,
        }
    }
/// Like join, but gracefully handles `Non` data fields by treating None as Bottom
Like join, but gracefully handles `Non` data fields by treating None as Bottom
Like join but gracefully handles ` Non ` data fields by treating None as Bottom
pub fn join_data_opt_(mut data: &mut Option<T>, other: &Option<T>) -> JoinResult {
        match (&mut data, other) {
            (Some(data1), Some(data2)) => data1.join(data2),
            (None, Some(d)) => {
                *data = Some(d.clone());
                JoinResult::Changed
            }
            (_, None) => JoinResult::Unchanged,
        }
    }
pub fn join_data_opt_ ( mut data : & mut Option < T > , other : & Option < T > ) -> JoinResult { match ( & mut data , other ) { ( Some ( data1 ) , Some ( data2 ) ) => data1 . join ( data2 ) , ( None , Some ( d ) ) => { * data = Some ( d . clone ( ) ) ; JoinResult :: Changed } ( _ , None ) => JoinResult :: Unchanged , } }
Like join, but gracefully handles `Non` data fields by treating None as Bottom
Like join but gracefully handles ` Non ` data fields by treating None as Bottom
data
&mut Option<T>
other
&Option<T>