fn new(list: &'a mut [T], first_len: usize, is_greater: C) -> Self {
        let mut ret_val = MergeLo {
            list_len: list.len(),
            first_pos: 0,
            first_len,
            second_pos: first_len,
            dest_pos: 0,
            list,
            tmp: Vec::with_capacity(first_len),
            is_greater,
        };
        // First, move the smallest run into temporary storage, leaving the
        // original contents uninitialized.
        unsafe {
            ret_val.tmp.set_len(first_len);
            ptr::copy_nonoverlapping(
                ret_val.list.as_ptr() as *const ManuallyDrop<T>,
                ret_val.tmp.as_mut_ptr(),
                first_len,
            );
        }
        ret_val
    }
/// Constructor for a lower merge.
Constructor for a lower merge.
Constructor for a lower merge .
fn new(list: &'a mut [T], first_len: usize, is_greater: C) -> Self {
        let mut ret_val = MergeLo {
            list_len: list.len(),
            first_pos: 0,
            first_len,
            second_pos: first_len,
            dest_pos: 0,
            list,
            tmp: Vec::with_capacity(first_len),
            is_greater,
        };
        // First, move the smallest run into temporary storage, leaving the
        // original contents uninitialized.
        unsafe {
            ret_val.tmp.set_len(first_len);
            ptr::copy_nonoverlapping(
                ret_val.list.as_ptr() as *const ManuallyDrop<T>,
                ret_val.tmp.as_mut_ptr(),
                first_len,
            );
        }
        ret_val
    }
fn new ( list : & ' a mut [ T ] , first_len : usize , is_greater : C ) -> Self { let mut ret_val = MergeLo { list_len : list . len ( ) , first_pos : 0 , first_len , second_pos : first_len , dest_pos : 0 , list , tmp : Vec :: with_capacity ( first_len ) , is_greater , } ; // First, move the smallest run into temporary storage, leaving the // original contents uninitialized. unsafe { ret_val . tmp . set_len ( first_len ) ; ptr :: copy_nonoverlapping ( ret_val . list . as_ptr ( ) as * const ManuallyDrop < T > , ret_val . tmp . as_mut_ptr ( ) , first_len , ) ; } ret_val }
Constructor for a lower merge.
Constructor for a lower merge .
list
&'a mut [T]
first_len
usize
is_greater
C
list
&'a mut [T]
first_len
usize
is_greater
C