pub(super) fn compare(&self, a_idx: usize, b_idx: usize) -> Ordering {
        for (data, comparator, sort_option) in &self.compare_items {
            match (data.is_valid(a_idx), data.is_valid(b_idx)) {
                (true, true) => {
                    match (comparator)(a_idx, b_idx) {
                        // equal, move on to next column
                        Ordering::Equal => continue,
                        order => {
                            if sort_option.descending {
                                return order.reverse();
                            } else {
                                return order;
                            }
                        }
                    }
                }
                (false, true) => {
                    return if sort_option.nulls_first {
                        Ordering::Less
                    } else {
                        Ordering::Greater
                    };
                }
                (true, false) => {
                    return if sort_option.nulls_first {
                        Ordering::Greater
                    } else {
                        Ordering::Less
                    };
                }
                // equal, move on to next column
                (false, false) => continue,
            }
        }

        Ordering::Equal
    }
/// compare values at the wrapped columns with given indices.
compare values at the wrapped columns with given indices.
compare values at the wrapped columns with given indices .
pub(super) fn compare(&self, a_idx: usize, b_idx: usize) -> Ordering {
        for (data, comparator, sort_option) in &self.compare_items {
            match (data.is_valid(a_idx), data.is_valid(b_idx)) {
                (true, true) => {
                    match (comparator)(a_idx, b_idx) {
                        // equal, move on to next column
                        Ordering::Equal => continue,
                        order => {
                            if sort_option.descending {
                                return order.reverse();
                            } else {
                                return order;
                            }
                        }
                    }
                }
                (false, true) => {
                    return if sort_option.nulls_first {
                        Ordering::Less
                    } else {
                        Ordering::Greater
                    };
                }
                (true, false) => {
                    return if sort_option.nulls_first {
                        Ordering::Greater
                    } else {
                        Ordering::Less
                    };
                }
                // equal, move on to next column
                (false, false) => continue,
            }
        }
        Ordering::Equal
    }
pub ( super ) fn compare ( & self , a_idx : usize , b_idx : usize ) -> Ordering { for ( data , comparator , sort_option ) in & self . compare_items { match ( data . is_valid ( a_idx ) , data . is_valid ( b_idx ) ) { ( true , true ) => { match ( comparator ) ( a_idx , b_idx ) { // equal, move on to next column Ordering :: Equal => continue , order => { if sort_option . descending { return order . reverse ( ) ; } else { return order ; } } } } ( false , true ) => { return if sort_option . nulls_first { Ordering :: Less } else { Ordering :: Greater } ; } ( true , false ) => { return if sort_option . nulls_first { Ordering :: Greater } else { Ordering :: Less } ; } // equal, move on to next column ( false , false ) => continue , } } Ordering :: Equal }
compare values at the wrapped columns with given indices.
compare values at the wrapped columns with given indices .
&self
a_idx
usize
b_idx
usize
&self
a_idx
usize
b_idx
usize