Trait OrdArray

Source
pub trait OrdArray<K: ArrayKind, T>: Clone + Array<K, T> {
    // Required method
    fn argsort(&self) -> K::Index;

    // Provided method
    fn sort_by(&self, key: &Self) -> Self { ... }
}

Required Methods§

Source

fn argsort(&self) -> K::Index

Produce an array of indices which sorts self. That is, self.gather(self.argsort()) is monotonic.

Provided Methods§

Source

fn sort_by(&self, key: &Self) -> Self

Sort this array by the given keys

use open_hypergraphs::array::{*, vec::*};
let values = VecArray(vec![10, 20, 30, 40]);
let keys = VecArray(vec![3, 1, 0, 2]);
let expected = VecArray(vec![30, 20, 40, 10]);
let actual = values.sort_by(&keys);
assert_eq!(expected, actual);

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<T: Ord + Clone> OrdArray<VecKind, T> for VecArray<T>