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