# Struct openssl::stack::StackRef [−] [src]

    pub struct StackRef<T: Stackable>(_, _);

## Implementations

### `impl<T: Stackable> StackRef<T>` [src]

#### `pub fn len(&self) -> usize` [src]

Returns the number of items in the stack.

#### `pub fn is_empty(&self) -> bool` [src]

Determines if the stack is empty.

#### `pub fn iter(&self) -> Iter<'_, T>ⓘ

### Notable traits for Iter<'a, T>

`impl<'a, T: Stackable> Iterator for Iter<'a, T> type Item = &'a T::Ref;`
` [src]

#### `pub fn iter_mut(&mut self) -> IterMut<'_, T>ⓘ

### Notable traits for IterMut<'a, T>

`impl<'a, T: Stackable> Iterator for IterMut<'a, T> type Item = &'a mut T::Ref;`
` [src]

#### `pub fn get(&self, idx: usize) -> Option<&T::Ref>` [src]

Returns a reference to the element at the given index in the stack or `None` if the index is out of bounds

#### `pub fn get_mut(&mut self, idx: usize) -> Option<&mut T::Ref>` [src]

Returns a mutable reference to the element at the given index in the stack or `None` if the index is out of bounds

#### `pub fn push(&mut self, data: T) -> Result<(), ErrorStack>` [src]

Pushes a value onto the top of the stack.

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

Removes the last element from the stack and returns it.

## Trait Implementations

### `impl<T: Stackable> AsRef<StackRef<T>> for Stack<T>` [src]

#### `fn as_ref(&self) -> &StackRef<T>` [src]

Performs the conversion.

### `impl<T: Stackable> Borrow<StackRef<T>> for Stack<T>` [src]

#### `fn borrow(&self) -> &StackRef<T>` [src]

Immutably borrows from an owned value. Read more

### `impl<T: Stackable> ForeignTypeRef for StackRef<T>` [src]

#### `type CType = T::StackType`

The raw C type.

#### `pub unsafe fn from_ptr<'a>(ptr: *mut Self::CType) -> &'a Self` [src]

Constructs a shared instance of this type from its raw type.

#### `pub unsafe fn from_ptr_mut<'a>(ptr: *mut Self::CType) -> &'a mut Self` [src]

Constructs a mutable reference of this type from its raw type.

#### `pub fn as_ptr(&self) -> *mut Self::CType` [src]

Returns a raw pointer to the wrapped value.

### `impl<T: Stackable> Index<usize> for StackRef<T>` [src]

#### `type Output = T::Ref`

The returned type after indexing.

#### `fn index(&self, index: usize) -> &T::Ref` [src]

Performs the indexing (`container[index]`) operation.

### `impl<T: Stackable> IndexMut<usize> for StackRef<T>` [src]

#### `fn index_mut(&mut self, index: usize) -> &mut T::Ref` [src]

Performs the mutable indexing (`container[index]`) operation.

### `impl<'a, T: Stackable> IntoIterator for &'a StackRef<T>` [src]

#### `type Item = &'a T::Ref`

The type of the elements being iterated over.

#### `type IntoIter = Iter<'a, T>`

Which kind of iterator are we turning this into?

#### `fn into_iter(self) -> Iter<'a, T>ⓘ

### Notable traits for Iter<'a, T>

`impl<'a, T: Stackable> Iterator for Iter<'a, T> type Item = &'a T::Ref;`
` [src]

Creates an iterator from a value. Read more

### `impl<'a, T: Stackable> IntoIterator for &'a mut StackRef<T>` [src]

#### `type Item = &'a mut T::Ref`

The type of the elements being iterated over.

#### `type IntoIter = IterMut<'a, T>`

Which kind of iterator are we turning this into?

#### `fn into_iter(self) -> IterMut<'a, T>ⓘ

### Notable traits for IterMut<'a, T>

`impl<'a, T: Stackable> Iterator for IterMut<'a, T> type Item = &'a mut T::Ref;`
` [src]

Creates an iterator from a value. Read more

### `impl<T: Stackable + Send> Send for StackRef<T>` [src]

### `impl<T: Stackable + Sync> Sync for StackRef<T>` [src]

## Auto Trait Implementations

### `impl<T> !RefUnwindSafe for StackRef<T>`

### `impl<T> Unpin for StackRef<T> where
T: Unpin,`

### `impl<T> UnwindSafe for StackRef<T> where
T: UnwindSafe,`

## Blanket Implementations

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

#### `pub fn type_id(&self) -> TypeId` [src]

Gets the `TypeId` of `self`. Read more

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

#### `pub fn borrow(&self) -> &T` [src]

Immutably borrows from an owned value. Read more

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

#### `pub fn borrow_mut(&mut self) -> &mut T` [src]

Mutably borrows from an owned value. Read more

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

#### `pub fn from(t: T) -> T` [src]

Performs the conversion.

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

#### `pub fn into(self) -> U` [src]

Performs the conversion.

### `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.

#### `pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>` [src]

Performs the conversion.

### `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.

#### `pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>` [src]

Performs the conversion.