Trait OrdVec

Source
pub trait OrdVec<T: PartialOrd> {
    // Required methods
    fn push_ord_ascending(&mut self, item: T) -> Result<usize, OrdVecError>;
    fn push_ord_descending(&mut self, item: T) -> Result<usize, OrdVecError>;
}
Expand description

A trait for adding elements to a vector in sorted order, both ascending and descending.

Required Methods§

Source

fn push_ord_ascending(&mut self, item: T) -> Result<usize, OrdVecError>

Inserts item into self in sorted ascending order. Returns the index at which item was inserted.

§Examples
use ordered_vec::OrdVec;
let mut values: Vec<f64> = Vec::new();
assert_eq!(values.push_ord_ascending(5.5), Ok(0));
assert_eq!(values, [5.5]);

assert_eq!(values.push_ord_ascending(3.14), Ok(0));
assert_eq!(values, [3.14, 5.5]);

assert_eq!(values.push_ord_ascending(7.77), Ok(2));
assert_eq!(values, [3.14, 5.5, 7.77]);
Source

fn push_ord_descending(&mut self, item: T) -> Result<usize, OrdVecError>

Inserts item into self in sorted descending order. Returns the index at which item was inserted.

§Examples
use ordered_vec::OrdVec;
let mut values: Vec<f64> = Vec::new();
assert_eq!(values.push_ord_descending(5.5), Ok(0));
assert_eq!(values, [5.5]);

assert_eq!(values.push_ord_descending(3.14), Ok(1));
assert_eq!(values, [5.5, 3.14]);

assert_eq!(values.push_ord_descending(7.77), Ok(0));
assert_eq!(values, [7.77, 5.5, 3.14]);

Implementations on Foreign Types§

Source§

impl<T: PartialOrd> OrdVec<T> for Vec<T>

Implementors§