[][src]Struct rustc_data_structures::stable_hasher::StableVec

pub struct StableVec<T>(Vec<T>);

A vector container that makes sure that its items are hashed in a stable order.


impl<T> StableVec<T>[src]

pub fn new(v: Vec<T>) -> Self[src]

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.


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[..].


use std::io::{self, Write};
let buffer = vec![1, 2, 3, 5, 8];

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.


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 len(&self) -> usize1.0.0[src]

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


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.


let mut v = Vec::new();


Trait Implementations

impl<T> Deref for StableVec<T>[src]

type Target = Vec<T>

The resulting type after dereferencing.

impl<T, HCX> HashStable<HCX> for StableVec<T> where
    T: HashStable<HCX> + ToStableHashKey<HCX>, 

Auto Trait Implementations

impl<T> RefUnwindSafe for StableVec<T> where
    T: RefUnwindSafe

impl<T> Send for StableVec<T> where
    T: Send

impl<T> Sync for StableVec<T> where
    T: Sync

impl<T> Unpin for StableVec<T> where
    T: Unpin

impl<T> UnwindSafe for StableVec<T> where
    T: UnwindSafe

Blanket Implementations

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

impl<T> Borrow<T> for T where
    T: ?Sized

impl<T> BorrowMut<T> for T where
    T: ?Sized

impl<'a, T> Captures<'a> for T where
    T: ?Sized

impl<T> Erased for T[src]

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

impl<T, U> Into<U> for T where
    U: From<T>, 

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 

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

The type returned in the event of a conversion error.