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§
Sourcefn push_ord_ascending(&mut self, item: T) -> Result<usize, OrdVecError>
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]);
Sourcefn push_ord_descending(&mut self, item: T) -> Result<usize, OrdVecError>
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]);