[][src]Struct sorted_vec::ReverseSortedVec

pub struct ReverseSortedVec<T: Ord> { /* fields omitted */ }

Reverse sorted vector

Implementations

impl<T: Ord> ReverseSortedVec<T>[src]

pub fn new() -> Self[src]

pub fn with_capacity(capacity: usize) -> Self[src]

pub fn from_unsorted(vec: Vec<T>) -> Self[src]

Uses sort_unstable_by() to sort in place.

pub fn insert(&mut self, element: T) -> usize[src]

Insert an element into (reverse) sorted position, returning the order index at which it was placed.

pub fn find_or_insert(&mut self, element: T) -> Result<usize, usize>[src]

Find the element and return the index with Ok, otherwise insert the element and return the new element index with Err.

pub fn remove_item(&mut self, item: &T) -> Option<T>[src]

pub fn remove_index(&mut self, index: usize) -> T[src]

Panics if index is out of bounds

pub fn pop(&mut self) -> Option<T>[src]

pub fn clear(&mut self)[src]

pub fn dedup(&mut self)[src]

pub fn dedup_by_key<F, K>(&mut self, key: F) where
    F: FnMut(&mut T) -> K,
    K: PartialEq<K>, 
[src]

pub fn drain<R>(&mut self, range: R) -> Drain<'_, T> where
    R: RangeBounds<usize>, 
[src]

pub fn retain<F>(&mut self, f: F) where
    F: FnMut(&T) -> bool
[src]

pub fn into_vec(self) -> Vec<T>[src]

NOTE: to_vec() is a slice method that is accessible through deref, use this instead to avoid cloning

pub fn mutate_vec<F, O>(&mut self, f: F) -> O where
    F: FnOnce(&mut Vec<T>) -> O, 
[src]

Apply a closure mutating the reverse-sorted vector and use sort_unstable_by() to re-sort the mutated vector

Methods from Deref<Target = Vec<T>>

pub fn capacity(&self) -> usize1.0.0[src]

Returns the number of elements the vector can hold without reallocating.

Examples

let vec: Vec<i32> = Vec::with_capacity(10);
assert_eq!(vec.capacity(), 10);

pub fn as_slice(&self) -> &[T]1.7.0[src]

Extracts a slice containing the entire vector.

Equivalent to &s[..].

Examples

use std::io::{self, Write};
let buffer = vec![1, 2, 3, 5, 8];
io::sink().write(buffer.as_slice()).unwrap();

pub fn as_ptr(&self) -> *const T1.37.0[src]

Returns a raw pointer to the vector's buffer.

The caller must ensure that the vector outlives the pointer this function returns, or else it will end up pointing to garbage. Modifying the vector may cause its buffer to be reallocated, which would also make any pointers to it invalid.

The caller must also ensure that the memory the pointer (non-transitively) points to is never written to (except inside an UnsafeCell) using this pointer or any pointer derived from it. If you need to mutate the contents of the slice, use as_mut_ptr.

Examples

let x = vec![1, 2, 4];
let x_ptr = x.as_ptr();

unsafe {
    for i in 0..x.len() {
        assert_eq!(*x_ptr.add(i), 1 << i);
    }
}

pub fn allocator(&self) -> &A[src]

🔬 This is a nightly-only experimental API. (allocator_api)

Returns a reference to the underlying allocator.

pub fn len(&self) -> usize1.0.0[src]

Returns the number of elements in the vector, also referred to as its 'length'.

Examples

let a = vec![1, 2, 3];
assert_eq!(a.len(), 3);

pub fn is_empty(&self) -> bool1.0.0[src]

Returns true if the vector contains no elements.

Examples

let mut v = Vec::new();
assert!(v.is_empty());

v.push(1);
assert!(!v.is_empty());

Trait Implementations

impl<T: Clone + Ord> Clone for ReverseSortedVec<T>[src]

impl<T: Debug + Ord> Debug for ReverseSortedVec<T>[src]

impl<T: Ord> Default for ReverseSortedVec<T>[src]

impl<T: Ord> Deref for ReverseSortedVec<T>[src]

type Target = Vec<T>

The resulting type after dereferencing.

impl<T: Eq + Ord> Eq for ReverseSortedVec<T>[src]

impl<T: Ord> Extend<T> for ReverseSortedVec<T>[src]

impl<T: Ord> From<Vec<T, Global>> for ReverseSortedVec<T>[src]

impl<T: Ord + Hash> Hash for ReverseSortedVec<T>[src]

impl<T: Ord> Ord for ReverseSortedVec<T>[src]

impl<T: PartialEq + Ord> PartialEq<ReverseSortedVec<T>> for ReverseSortedVec<T>[src]

impl<T: PartialOrd + Ord> PartialOrd<ReverseSortedVec<T>> for ReverseSortedVec<T>[src]

impl<T: Ord> StructuralEq for ReverseSortedVec<T>[src]

impl<T: Ord> StructuralPartialEq for ReverseSortedVec<T>[src]

Auto Trait Implementations

impl<T> RefUnwindSafe for ReverseSortedVec<T> where
    T: RefUnwindSafe
[src]

impl<T> Send for ReverseSortedVec<T> where
    T: Send
[src]

impl<T> Sync for ReverseSortedVec<T> where
    T: Sync
[src]

impl<T> Unpin for ReverseSortedVec<T> where
    T: Unpin
[src]

impl<T> UnwindSafe for ReverseSortedVec<T> where
    T: UnwindSafe
[src]

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.