[−][src]Struct abi_stable::std_types::RVec
Ffi-safe equivalent of std::vec::Vec
.
Methods
impl<T> RVec<T>
[src]
impl<T> RVec<T>
[src]
pub fn new() -> Self
[src]
Creates a new,empty RVec<T>
.
This function does not allocate.
pub fn with_capacity(cap: usize) -> Self
[src]
Creates a new,empty RVec<T>
,with a capacity of cap
.
This function does not allocate if cap
==0.
pub fn slice<'a, I>(&'a self, range: I) -> RSlice<'a, T> where
[T]: Index<I, Output = [T]>,
[src]
[T]: Index<I, Output = [T]>,
Creates an RSlice<'a,T>
with access to the range
range of
elements of the RVec<T>
.
pub fn slice_mut<'a, I>(&'a mut self, i: I) -> RSliceMut<'a, T> where
[T]: IndexMut<I, Output = [T]>,
[src]
[T]: IndexMut<I, Output = [T]>,
Creates an RSliceMut<'a,T>
with access to the range
range of
elements of the RVec<T>
.
pub fn as_slice(&self) -> &[T]
[src]
Creates a &[T]
with access to all the elements of the RVec<T>
.
pub fn as_mut_slice(&mut self) -> &mut [T]
[src]
Creates a &mut [T]
with access to all the elements of the RVec<T>
.
pub fn as_rslice(&self) -> RSlice<T>
[src]
Creates an RSlice<'_,T>
with access to all the elements of the RVec<T>
.
pub fn as_mut_rslice(&mut self) -> RSliceMut<T>
[src]
Creates an RSliceMut<'_,T>
with access to all the elements of the RVec<T>
.
pub const fn len(&self) -> usize
[src]
Returns the ammount of elements of the RVec<T>
.
pub unsafe fn set_len(&mut self, new_len: usize)
[src]
Sets the length field of RVec<T>
to new_len
.
Safety
new_len
must be less than or equal to self.capacity()
.
The elements at old_len..new_len must be initialized.
pub fn shrink_to_fit(&mut self)
[src]
Shrinks the capacity of the RString to match its length.
pub fn is_empty(&self) -> bool
[src]
Whether the length of the RVec<T>
is 0.
pub fn into_vec(self) -> Vec<T>
[src]
Returns a Vec<T>
,consuming self
.
Allocation
If this is invoked outside of the dynamic library/binary that created it,
it will allocate a new Vec<T>
and move the data into it.
pub fn to_vec(&self) -> Vec<T> where
T: Clone,
[src]
T: Clone,
Creates a Vec<T>
,copying all the elements of this RVec<T>
.
pub fn insert(&mut self, index: usize, value: T)
[src]
pub fn try_remove(&mut self, index: usize) -> Option<T>
[src]
Attemps to remove the element at index
position,
returns None if self.len() <= index.
pub fn remove(&mut self, index: usize) -> T
[src]
pub fn swap_remove(&mut self, index: usize) -> T
[src]
Swaps the element at index
position with the last element,and then removes it.
Panic
Panics if self.len() <= index.
pub fn push(&mut self, new_val: T)
[src]
Appends new_val
at the end of the RVec<T>
.
pub fn pop(&mut self) -> Option<T>
[src]
Attempts to remove the last element,
returns None if the RVec<T>
is empty.
pub fn truncate(&mut self, to: usize)
[src]
Truncates the RVec<T>
to to
length.
Does nothing if self.len() <= to.
Note:this has no effect on the capacity of the RVec<T>
.
pub fn clear(&mut self)
[src]
Removes all the elements from collection.
Note:this has no effect on the capacity of the RVec<T>
.
pub fn retain<F>(&mut self, pred: F) where
F: FnMut(&T) -> bool,
[src]
F: FnMut(&T) -> bool,
Retains only the elements that satisfy the pred
predicate
This means that a element will be removed if pred(that_element)
returns false.
pub fn reserve(&mut self, additional: usize)
[src]
Reserves àdditional
additional capacity for extra elements.
This may reserve more than necessary for the additional capacity.
pub fn reserve_exact(&mut self, additional: usize)
[src]
Reserves àdditional
additional capacity for extra elements.
Prefer using reserve
for most situations.
impl<T> RVec<T> where
T: Clone,
[src]
T: Clone,
pub fn resize(&mut self, new_len: usize, value: T)
[src]
Resizes the RVec<T>
to new_len
length.
if new_len is larger than the current length,
the RVec<T>
is extended with clones of value
to reach the new length.
pub fn extend_from_slice(&mut self, slic_: &[T])
[src]
Extends this RVec<_>
with clones of the elements of the slice.
impl<T> RVec<T> where
T: Copy,
[src]
T: Copy,
pub fn extend_from_copy_slice(&mut self, slic_: &[T])
[src]
Extends this RVec<_>
with copies of the elements of the slice.
impl<T> RVec<T>
[src]
ⓘImportant traits for Drain<'a, T>pub fn drain<'a, I>(&'a mut self, index: I) -> Drain<'a, T> where
[T]: IndexMut<I, Output = [T]>,
[src]
[T]: IndexMut<I, Output = [T]>,
Creates a draining iterator that removes the specified range in
the RVec<T>
and yields the removed items.
Panic
Panics if the index is out of bounds or if the start of the range is greater than the end of the range.
Consumption
The elements in the range will be removed even if the iterator was dropped before yielding them.
Trait Implementations
impl<T> IntoReprRust for RVec<T>
[src]
impl<T> StableAbi for RVec<T> where
T: __StableAbi,
[src]
T: __StableAbi,
type IsNonZeroType = False
Whether this type has a single invalid bit-pattern. Read more
const LAYOUT: &'static TypeLayout
[src]
const ABI_INFO: &'static AbiInfoWrapper
[src]
The layout of the type,derived from Self::LAYOUT and associated types.
impl<T> Drop for RVec<T>
[src]
impl<T> Eq for RVec<T> where
T: Eq,
[src]
T: Eq,
impl<T> PartialOrd<RVec<T>> for RVec<T> where
T: PartialOrd,
[src]
T: PartialOrd,
fn partial_cmp(&self, other: &Self) -> Option<Ordering>
[src]
#[must_use]
default fn lt(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests less than (for self
and other
) and is used by the <
operator. Read more
#[must_use]
default fn le(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
#[must_use]
default fn gt(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
#[must_use]
default fn ge(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests greater than or equal to (for self
and other
) and is used by the >=
operator. Read more
impl<T> PartialEq<RVec<T>> for RVec<T> where
T: PartialEq,
[src]
T: PartialEq,
fn eq(&self, other: &Self) -> bool
[src]
#[must_use]
default fn ne(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests for !=
.
impl<T> Sync for RVec<T> where
T: Sync,
[src]
T: Sync,
impl<T> Clone for RVec<T> where
T: Clone,
[src]
T: Clone,
fn clone(&self) -> Self
[src]
default fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more
impl<T> Default for RVec<T>
[src]
impl<T> Ord for RVec<T> where
T: Ord,
[src]
T: Ord,
fn cmp(&self, other: &Self) -> Ordering
[src]
default fn max(self, other: Self) -> Self
1.21.0[src]
Compares and returns the maximum of two values. Read more
default fn min(self, other: Self) -> Self
1.21.0[src]
Compares and returns the minimum of two values. Read more
default fn clamp(self, min: Self, max: Self) -> Self
[src]
clamp
)Restrict a value to a certain interval. Read more
impl<T> From<Vec<T>> for RVec<T>
[src]
impl<'a, T> From<&'a [T]> for RVec<T> where
T: Clone,
[src]
T: Clone,
impl<'a, T> From<Cow<'a, [T]>> for RVec<T> where
T: Clone,
[src]
T: Clone,
impl<T> IntoIterator for RVec<T>
[src]
type Item = T
The type of the elements being iterated over.
type IntoIter = IntoIter<T>
Which kind of iterator are we turning this into?
ⓘImportant traits for IntoIter<T>fn into_iter(self) -> IntoIter<T>
[src]
impl<'a, T> IntoIterator for &'a RVec<T>
[src]
type Item = &'a T
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) -> Self::IntoIter
[src]
impl<'a, T> IntoIterator for &'a mut RVec<T>
[src]
type Item = &'a mut T
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) -> Self::IntoIter
[src]
impl<T> Into<Vec<T>> for RVec<T>
[src]
impl<T> Extend<T> for RVec<T>
[src]
fn extend<I>(&mut self, iter: I) where
I: IntoIterator<Item = T>,
[src]
I: IntoIterator<Item = T>,
impl<T> Send for RVec<T> where
T: Send,
[src]
T: Send,
impl<T> Debug for RVec<T> where
T: Debug,
[src]
T: Debug,
impl<T> FromIterator<T> for RVec<T>
[src]
fn from_iter<I>(iter: I) -> Self where
I: IntoIterator<Item = T>,
[src]
I: IntoIterator<Item = T>,
impl<T> DerefMut for RVec<T>
[src]
impl<T> Deref for RVec<T>
[src]
impl<T> Hash for RVec<T> where
T: Hash,
[src]
T: Hash,
fn hash<H>(&self, state: &mut H) where
H: Hasher,
[src]
H: Hasher,
default fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
Feeds a slice of this type into the given [Hasher
]. Read more
impl Write for RVec<u8>
[src]
fn write(&mut self, buf: &[u8]) -> Result<usize>
[src]
fn write_all(&mut self, buf: &[u8]) -> Result<()>
[src]
fn flush(&mut self) -> Result<()>
[src]
default fn write_vectored(&mut self, bufs: &[IoVec]) -> Result<usize, Error>
[src]
iovec
)Like write
, except that it writes from a slice of buffers. Read more
default fn write_fmt(&mut self, fmt: Arguments) -> Result<(), Error>
1.0.0[src]
Writes a formatted string into this writer, returning any error encountered. Read more
default fn by_ref(&mut self) -> &mut Self
1.0.0[src]
Creates a "by reference" adaptor for this instance of Write
. Read more
impl<'de, T> Deserialize<'de> for RVec<T> where
T: Deserialize<'de>,
[src]
T: Deserialize<'de>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> where
D: Deserializer<'de>,
[src]
D: Deserializer<'de>,
impl<T> Serialize for RVec<T> where
T: Serialize,
[src]
T: Serialize,
Blanket Implementations
impl<T> MakeGetAbiInfo for T where
T: StableAbi,
[src]
T: StableAbi,
const CONST: GetAbiInfo
[src]
impl<T> MakeGetAbiInfo for T
[src]
const CONST: GetAbiInfo
[src]
impl<'a, T> BorrowOwned for T where
T: 'a + Clone + StableAbi,
[src]
T: 'a + Clone + StableAbi,
type ROwned = T
type RBorrowed = &'a T
fn r_borrow(
&'a <T as BorrowOwned<'a>>::ROwned
) -> <T as BorrowOwned<'a>>::RBorrowed
[src]
&'a <T as BorrowOwned<'a>>::ROwned
) -> <T as BorrowOwned<'a>>::RBorrowed
fn r_to_owned(
<T as BorrowOwned<'a>>::RBorrowed
) -> <T as BorrowOwned<'a>>::ROwned
[src]
<T as BorrowOwned<'a>>::RBorrowed
) -> <T as BorrowOwned<'a>>::ROwned
fn deref_borrowed(&<T as BorrowOwned<'a>>::RBorrowed) -> &T
[src]
fn deref_owned(&<T as BorrowOwned<'a>>::ROwned) -> &T
[src]
fn from_cow_borrow(&'a T) -> <T as BorrowOwned<'a>>::RBorrowed
[src]
fn from_cow_owned(<T as ToOwned>::Owned) -> <T as BorrowOwned<'a>>::ROwned
[src]
fn into_cow_borrow(<T as BorrowOwned<'a>>::RBorrowed) -> &'a T
[src]
fn into_cow_owned(<T as BorrowOwned<'a>>::ROwned) -> <T as ToOwned>::Owned
[src]
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
impl<T> From for T
[src]
impl<I> IntoIterator for I where
I: Iterator,
[src]
I: Iterator,
type Item = <I as Iterator>::Item
The type of the elements being iterated over.
type IntoIter = I
Which kind of iterator are we turning this into?
fn into_iter(self) -> I
[src]
impl<T, U> Into for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T> Borrow for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> BorrowMut for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T, U> TryInto for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> TypeIdentity for T where
T: ?Sized,
[src]
T: ?Sized,
type Type = T
The same type as Self. Read more
default fn into_type_val(self) -> Self::Type where
Self::Type: Sized,
[src]
Self::Type: Sized,
Converts a value back to the original type.
default fn into_type_ref(&self) -> &Self::Type
[src]
Converts a reference back to the original type.
default fn into_type_mut(&mut self) -> &mut Self::Type
[src]
Converts a mutable reference back to the original type.
default fn into_type_box(self: Box<Self>) -> Box<Self::Type>
[src]
Converts a box back to the original type.
default fn into_type_arc(this: Arc<Self>) -> Arc<Self::Type>
[src]
Converts an Arc back to the original type.
default fn into_type_rc(this: Rc<Self>) -> Rc<Self::Type>
[src]
Converts an Rc back to the original type.
default fn from_type_val(this: Self::Type) -> Self where
Self::Type: Sized,
[src]
Self::Type: Sized,
Converts a value back to the original type.
default fn from_type_ref(this: &Self::Type) -> &Self
[src]
Converts a reference back to the original type.
default fn from_type_mut(this: &mut Self::Type) -> &mut Self
[src]
Converts a mutable reference back to the original type.
default fn from_type_box(this: Box<Self::Type>) -> Box<Self>
[src]
Converts a box back to the original type.
default fn from_type_arc(this: Arc<Self::Type>) -> Arc<Self>
[src]
Converts an Arc back to the original type.
default fn from_type_rc(this: Rc<Self::Type>) -> Rc<Self>
[src]
Converts an Rc back to the original type.
impl<T> SelfOps for T where
T: ?Sized,
[src]
T: ?Sized,
const T: PhantomData<fn() -> Self>
[src]
Represents Self by using a VariantPhantom, using the syntax Type::T
to pass it in methods with _:VariantPhantom<T>
parameters. Read more
const T_D: PhantomData<Self>
[src]
Represents Self by using a VariantDropPhantom,for specialized cases. Read more
default fn assert_ty(self, _other: PhantomData<fn() -> Self>) -> Self
[src]
Asserts that other
is the same type as self
.
default fn assert_ty_ref(&self, _other: PhantomData<fn() -> Self>) -> &Self
[src]
Asserts that other
is the same type as self
.
default fn assert_ty_mut(
&mut self,
_other: PhantomData<fn() -> Self>
) -> &mut Self
[src]
&mut self,
_other: PhantomData<fn() -> Self>
) -> &mut Self
Asserts that other
is the same type as self
.
default fn ty_(&self) -> PhantomData<fn() -> Self>
[src]
Equivalent to SelfOps::T,as a method. Read more
default fn ty_d(&self) -> PhantomData<Self>
[src]
Equivalent to [Self::ty_],for specialized cases. Read more
default fn ty_inv(&self) -> PhantomData<fn(Self) -> Self>
[src]
Equivalent to [Self::ty_] with an invariant type.
default fn ty_inv_ref(&self) -> PhantomData<Cell<&Self>>
[src]
Equivalent to [Self::ty_] with an invariant lifetime.
default fn eq_id(&self, other: &Self) -> bool
[src]
Identity comparison to another value of the same type. Read more
default fn piped<F, U>(self, f: F) -> U where
F: FnOnce(Self) -> U,
[src]
F: FnOnce(Self) -> U,
Emulates the pipeline operator,allowing method syntax in more places. Read more
default fn piped_ref<'a, F, U>(&'a self, f: F) -> U where
F: FnOnce(&'a Self) -> U,
[src]
F: FnOnce(&'a Self) -> U,
The same as piped
except that the function takes &Self
Useful for functions that take &Self
instead of Self
. Read more
default fn piped_mut<'a, F, U>(&'a mut self, f: F) -> U where
F: FnOnce(&'a mut Self) -> U,
[src]
F: FnOnce(&'a mut Self) -> U,
The same as piped
except that the function takes &mut Self
. Useful for functions that take &mut Self
instead of Self
. Read more
default fn mutated<F>(self, f: F) -> Self where
F: FnOnce(&mut Self),
[src]
F: FnOnce(&mut Self),
Mutates self using a closure taking self by mutable reference, passing it along the method chain. Read more
default fn observe<F>(self, f: F) -> Self where
F: FnOnce(&Self),
[src]
F: FnOnce(&Self),
Observes the value of self passing it along unmodified. Useful in a long method chain. Read more
default fn into_<T>(self, PhantomData<fn() -> T>) -> T where
Self: Into<T>,
[src]
Self: Into<T>,
Performs a conversion using Into. Read more
default fn as_ref_<T>(&self) -> &T where
Self: AsRef<T>,
T: ?Sized,
[src]
Self: AsRef<T>,
T: ?Sized,
Performs a reference to reference conversion using AsRef, using the turbofish .as_ref_::<_>()
syntax. Read more
default fn as_mut_<T>(&mut self) -> &mut T where
Self: AsMut<T>,
T: ?Sized,
[src]
Self: AsMut<T>,
T: ?Sized,
Performs a mutable reference to mutable reference conversion using AsMut, using the turbofish .as_mut_::<_>()
syntax. Read more
default fn drop_(self)
[src]
Drops self
using method notation. Alternative to std::mem::drop
. Read more
impl<T, U> TryInto for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The error type returned when the conversion fails.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> DeserializeOwned for T where
T: Deserialize<'de>,
[src]
T: Deserialize<'de>,