# Rust types reference ## Prelude - `std::borrow::ToOwned` - `std::boxed::Box` - `std::clone::Clone` - `std::cmp::{PartialEq, PartialOrd, Eq, Ord}` - `std::convert::{AsRef, AsMut, Into, From}` - `std::default::Default` - `std::iter::{Iterator, Extend, IntoIterator, DoubleEndedIterator, ExactSizeIterator}` - `std::marker::{Copy, Send, Sized, Sync, Unpin}` - `std::mem::drop` - `std::ops::{Drop, Fn, FnMut, FnOnce}` - `std::option::Option::{self, Some, None}` - `std::result::Result::{self, Ok, Err}` - `std::slice::SliceConcatExt` - `std::string::{String, ToString}` - `std::vec::Vec` ## std::any::Any trait Any: 'static Requires: - `type_id(&self) -> TypeId` Provides: - `downcast_ref(&self) -> Option<&T> where T: Any` - `is(&self) -> bool where T: Any` - `downcast_mut(&mut self) -> Option<&mut T> where T: Any` Implements: - `impl Debug for dyn Any + 'static + Send + Sync` - `impl Debug for dyn Any + 'static + Send` - `impl Debug for dyn Any + 'static` ## std::any::TypeId Methods: - `of() -> TypeId where T: 'static + ?Sized` Implements: - `impl Clone for TypeId` - `impl Copy for TypeId` - `impl Debug for TypeId` - `impl Eq for TypeId` - `impl Hash for TypeId` - `impl Ord for TypeId` - `impl PartialEq for TypeId` - `impl PartialOrd for TypeId` - `impl Send for TypeId` - `impl Sync for TypeId` ## std::borrow::Borrow trait Borrow where Borrowed: ?Sized Requires: - `borrow(&self) -> &Borrowed` ## std::borrow::ToOwned (prelude) trait ToOwned { type Owned: Borrow; } Requires: - `to_owned(&self) -> Self::Owned` Provides: - `clone_into(&self, target: &mut Self::Owned)` ## std::boxed::Box (prelude) struct Box(_) where T: ?Sized Methods: - `from_raw(raw: *mut T) -> Box` - `new(x: T) -> Box` - `pin(x: T) -> Pin>` - `into_pin(boxed: Box) -> Pin>` - `into_raw(b: Box) -> *mut T` - `into_raw_non_null(b: Box) -> NonNull` - `leak<'a>(b: Box) -> &'a mut T where T: 'a` - `downcast(self) -> Result, Box> where T: Any` - `downcast(self) -> Result, Box> where T: Any` Implements: - `impl Clone for Box` - `impl Clone for Box` - `impl Clone for Box` - `impl Clone for Box` - `impl Default for Box` - `impl Default for Box` - `impl Default for Box` - `impl From> for CString` - `impl From> for OsString` - `impl From> for PathBuf` - `impl From> for Box<[u8]>` - `impl From> for String` - `impl From for Box` - `impl From for Box` - `impl From for Box` - `impl From for Box` - `impl From for Box` - `impl From for Box` - `impl<'_, A, R> FnOnce for Box + '_ + Send>` - `impl<'_, A, R> FnOnce for Box + '_>` - `impl<'a, 'b> From<&'b str> for Box` - `impl<'a, 'b> From> for Box` - `impl<'a, E: Error + 'a> From for Box` - `impl<'a, E: Error + Send + Sync + 'a> From for Box` - `impl<'a, T> From<&'a [T]> for Box<[T]> where T: Copy` - `impl<'a> From<&'a CStr> for Box` - `impl<'a> From<&'a OsStr> for Box` - `impl<'a> From<&'a Path> for Box` - `impl<'a> From<&'a str> for Box` - `impl<'a> From<&'a str> for Box` - `impl<'a> From> for Box` - `impl FromIterator for Box<[A]>` - `impl BufRead for Box` - `impl Future for Box where F: Unpin + Future + ?Sized` - `impl Generator for Box where G: Unpin + Generator + ?Sized` - `impl DoubleEndedIterator for Box where I: DoubleEndedIterator + ?Sized` - `impl ExactSizeIterator for Box where I: ExactSizeIterator + ?Sized` - `impl FusedIterator for Box where I: FusedIterator + ?Sized` - `impl Iterator for Box where I: Iterator + ?Sized` - `impl Read for Box` - `impl Seek for Box` - `impl CoerceUnsized> for Box where T: Unsize + ?Sized, U: ?Sized` - `impl DispatchFromDyn> for Box where T: Unsize + ?Sized, U: ?Sized` - `impl Send for Box where T: Send` - `impl Sync for Box where T: Sync` - `impl Error for Box` - `impl AsMut for Box where T: ?Sized` - `impl AsRef for Box where T: ?Sized` - `impl Borrow for Box where T: ?Sized` - `impl BorrowMut for Box where T: ?Sized` - `impl Clone for Box where T: Clone` - `impl Clone for Box<[T]> where T: Clone` - `impl Debug for Box where T: Debug + ?Sized` - `impl Default for Box where T: Default` - `impl Default for Box<[T]>` - `impl Deref for Box where T: ?Sized` - `impl DerefMut for Box where T: ?Sized` - `impl Display for Box where T: Display + ?Sized` - `impl Drop for Box where T: ?Sized` - `impl Eq for Box where T: Eq + ?Sized` - `impl From> for Arc where T: ?Sized` - `impl From> for Pin> where T: ?Sized` - `impl From> for Rc where T: ?Sized` - `impl From> for Vec` - `impl From for Box` - `impl From> for Box<[T]>` - `impl Hash for Box where T: Hash + ?Sized` - `impl Hasher for Box where T: Hasher + ?Sized` - `impl Ord for Box where T: Ord + ?Sized` - `impl PartialEq> for Box where T: PartialEq + ?Sized` - `impl PartialOrd> for Box where T: PartialOrd + ?Sized` - `impl Pointer for Box where T: ?Sized` - `impl Unpin for Box where T: ?Sized` - `impl Write for Box` ## std::cell::RefCell struct RefCell where T: ?Sized Methods: - `new(value: T) -> RefCell` - `as_ptr(&self) -> *mut T` - `borrow(&self) -> Ref` - `borrow_mut(&self) -> RefMut` - `replace(&self, t: T) -> T` - `replace_with(&self, f: F) -> T where F: FnOnce(&mut T) -> T` - `swap(&self, other: &RefCell)` - `try_borrow(&self) -> Result, BorrowError>` - `try_borrow_mut(&self) -> Result, BorrowMutError>` - `get_mut(&mut self) -> &mut T` - `into_inner(self) -> T` Implements: - `impl CoerceUnsized> for RefCell where T: CoerceUnsized` - `impl !Sync for RefCell where T: ?Sized` - `impl Clone for RefCell where T: Clone` - `impl Debug for RefCell where T: Debug + ?Sized` - `impl Default for RefCell where T: Default` - `impl Eq for RefCell where T: Eq + ?Sized` - `impl From for RefCell` - `impl Ord for RefCell where T: Ord + ?Sized` - `impl PartialEq> for RefCell where T: PartialEq + ?Sized` - `impl PartialOrd> for RefCell where T: PartialOrd + ?Sized` - `impl RefCell where T: ?Sized` - `impl RefCell` - `impl Send for RefCell where T: Send + ?Sized` ## std::cell::Ref struct Ref<'b, T> where T: 'b + 'b + ?Sized Methods: - `clone(orig: &Ref<'b, T>) -> Ref<'b, T>` - `map(orig: Ref<'b, T>, f: F) -> Ref<'b, U> where F: FnOnce(&T) -> &U, U: ?Sized` - `map_split(orig: Ref<'b, T>, f: F) -> (Ref<'b, U>, Ref<'b, V>) where F: FnOnce(&T) -> (&U, &V), U: ?Sized, V: ?Sized` Implements: - `impl<'_, T> Debug for Ref<'_, T> where T: Debug + ?Sized` - `impl<'_, T> Deref for Ref<'_, T> where T: ?Sized` - `impl<'_, T> Display for Ref<'_, T> where T: Display + ?Sized` - `impl<'b, T, U> CoerceUnsized> for Ref<'b, T> where T: Unsize + ?Sized, U: ?Sized` - `impl<'b, T> !Send for Ref<'b, T>` - `impl<'b, T> !Sync for Ref<'b, T>` - `impl<'b, T> Ref<'b, T> where T: ?Sized` ## std::cell::RefMut struct RefMut<'b, T> where T: 'b + 'b + ?Sized Methods: - `map(orig: RefMut<'b, T>, f: F) -> RefMut<'b, U> where F: FnOnce(&mut T) -> &mut U, U: ?Sized` - `map_split( orig: RefMut<'b, T>, f: F ) -> (RefMut<'b, U>, RefMut<'b, V>) where F: FnOnce(&mut T) -> (&mut U, &mut V), U: ?Sized, V: ?Sized` Implements: - `impl<'_, T> Debug for RefMut<'_, T> where T: Debug + ?Sized` - `impl<'_, T> Deref for RefMut<'_, T> where T: ?Sized` - `impl<'_, T> DerefMut for RefMut<'_, T> where T: ?Sized` - `impl<'_, T> Display for RefMut<'_, T> where T: Display + ?Sized` - `impl<'b, T, U> CoerceUnsized> for RefMut<'b, T> where T: Unsize + ?Sized, U: ?Sized` - `impl<'b, T> !Send for RefMut<'b, T>` - `impl<'b, T> !Sync for RefMut<'b, T>` - `impl<'b, T> RefMut<'b, T> where T: ?Sized` ## std::clone::Clone (prelude) trait Clone Requires: - `clone(&self) -> Self` Provides: - `clone_from(&mut self, source: &Self)` ## std::cmp::Eq (prelude) trait Eq: PartialEq ## std::cmp::Ord (prelude) trait Ord: Eq + PartialOrd Requires: - `cmp(&self, other: &Self) -> Ordering` Provides: - `max(self, other: Self) -> Self` - `min(self, other: Self) -> Self` ## std::cmp::Ordering enum Ordering { Less, Equal, Greater, } Methods: - `reverse(self) -> Ordering` - `then(self, other: Ordering) -> Ordering` - `then_with(self, f: F) -> Ordering where F: FnOnce() -> Ordering` Implements: - `impl Clone for Ordering` - `impl Copy for Ordering` - `impl Debug for Ordering` - `impl Eq for Ordering` - `impl Hash for Ordering` - `impl Ord for Ordering` - `impl Ordering` - `impl PartialEq for Ordering` - `impl PartialOrd for Ordering` - `impl Send for Ordering` - `impl Sync for Ordering` ## std::cmp::PartialEq (prelude) trait PartialEq where Rhs: ?Sized Requires: - `eq(&self, other: &Rhs) -> bool` Provides: - `ne(&self, other: &Rhs) -> bool` ## std::cmp::PartialOrd (prelude) trait PartialOrd: PartialEq where Rhs: ?Sized Requires: - `partial_cmp(&self, other: &Rhs) -> Option` Provides: - `ge(&self, other: &Rhs) -> bool` - `gt(&self, other: &Rhs) -> bool` - `le(&self, other: &Rhs) -> bool` - `lt(&self, other: &Rhs) -> bool` ## std::convert::AsMut (prelude) trait AsMut where T: ?Sized Requires: - `as_mut(&mut self) -> &mut T` ## std::convert::AsRef (prelude) trait AsRef where T: ?Sized Requires: - `as_ref(&self) -> &T` ## std::convert::From (prelude) trait From Requires: - `from(T) -> Self` ## std::convert::Into (prelude) trait Into Requires: - `into(self) -> T` ## std::default::Default (prelude) trait Default Requires: - `default() -> Self` ## std::iter::DoubleEndedIterator (prelude) trait DoubleEndedIterator: Iterator Requires: - `next_back(&mut self) -> Option` Provides: - `nth_back(&mut self, n: usize) -> Option` - `rfind

(&mut self, predicate: P) -> Option where P: FnMut(&Self::Item) -> bool` - `find_map(&mut self, f: F) -> Option where F: FnMut(Self::Item) -> Option` - `nth(&mut self, n: usize) -> Option` - `position

(&mut self, predicate: P) -> Option where P: FnMut(Self::Item) -> bool` - `rposition

(&mut self, predicate: P) -> Option where P: FnMut(Self::Item) -> bool, Self: ExactSizeIterator + DoubleEndedIterator` - `try_fold(&mut self, init: B, f: F) -> R where F: FnMut(B, Self::Item) -> R, R: Try` - `try_for_each(&mut self, f: F) -> R where F: FnMut(Self::Item) -> R, R: Try` - `chain(self, other: U) -> Chain::IntoIter> where U: IntoIterator` - `cloned<'a, T>(self) -> Cloned where Self: Iterator, T: 'a + Clone` - `cmp(self, other: I) -> Ordering where I: IntoIterator, Self::Item: Ord` - `collect(self) -> B where B: FromIterator` - `copied<'a, T>(self) -> Copied where Self: Iterator, T: 'a + Copy` - `count(self) -> usize` - `cycle(self) -> Cycle where Self: Clone` - `enumerate(self) -> Enumerate` - `eq(self, other: I) -> bool where I: IntoIterator, Self::Item: PartialEq<::Item>` - `filter

(self, predicate: P) -> Filter where P: FnMut(&Self::Item) -> bool` - `filter_map(self, f: F) -> FilterMap where F: FnMut(Self::Item) -> Option` - `flat_map(self, f: F) -> FlatMap where F: FnMut(Self::Item) -> U, U: IntoIterator` - `flatten(self) -> Flatten where Self::Item: IntoIterator` - `fold(self, init: B, f: F) -> B where F: FnMut(B, Self::Item) -> B` - `for_each(self, f: F) where F: FnMut(Self::Item)` - `fuse(self) -> Fuse` - `ge(self, other: I) -> bool where I: IntoIterator, Self::Item: PartialOrd<::Item>` - `gt(self, other: I) -> bool where I: IntoIterator, Self::Item: PartialOrd<::Item>` - `inspect(self, f: F) -> Inspect where F: FnMut(&Self::Item)` - `is_sorted(self) -> bool where Self::Item: PartialOrd` - `is_sorted_by(self, compare: F) -> bool where F: FnMut(&Self::Item, &Self::Item) -> Option` - `is_sorted_by_key(self, f: F) -> bool where F: FnMut(&Self::Item) -> K, K: PartialOrd` - `last(self) -> Option` - `le(self, other: I) -> bool where I: IntoIterator, Self::Item: PartialOrd<::Item>` - `lt(self, other: I) -> bool where I: IntoIterator, Self::Item: PartialOrd<::Item>` - `map(self, f: F) -> Map where F: FnMut(Self::Item) -> B` - `max(self) -> Option where Self::Item: Ord` - `max_by(self, compare: F) -> Option where F: FnMut(&Self::Item, &Self::Item) -> Ordering` - `max_by_key(self, f: F) -> Option where B: Ord, F: FnMut(&Self::Item) -> B` - `min(self) -> Option where Self::Item: Ord` - `min_by(self, compare: F) -> Option where F: FnMut(&Self::Item, &Self::Item) -> Ordering` - `min_by_key(self, f: F) -> Option where B: Ord, F: FnMut(&Self::Item) -> B` - `ne(self, other: I) -> bool where I: IntoIterator, Self::Item: PartialEq<::Item>` - `partial_cmp(self, other: I) -> Option where I: IntoIterator, Self::Item: PartialOrd<::Item>` - `partition(self, f: F) -> (B, B) where B: Default + Extend, F: FnMut(&Self::Item) -> bool` - `peekable(self) -> Peekable` - `product

(self) -> P where P: Product` - `rev(self) -> Rev where Self: DoubleEndedIterator` - `scan(self, initial_state: St, f: F) -> Scan where F: FnMut(&mut St, Self::Item) -> Option` - `skip(self, n: usize) -> Skip` - `skip_while

(self, predicate: P) -> SkipWhile where P: FnMut(&Self::Item) -> bool` - `step_by(self, step: usize) -> StepBy` - `sum(self) -> S where S: Sum` - `take(self, n: usize) -> Take` - `take_while

(self, predicate: P) -> TakeWhile where P: FnMut(&Self::Item) -> bool` - `unzip(self) -> (FromA, FromB) where FromA: Default + Extend, FromB: Default + Extend, Self: Iterator` - `zip(self, other: U) -> Zip::IntoIter> where U: IntoIterator` ## std::option::Option (prelude) enum Option { Some(T), None, } Methods: - `as_ref(&self) -> Option<&T>` - `deref(&self) -> Option<&::Target>` - `is_none(&self) -> bool` - `is_some(&self) -> bool` - `iter(&self) -> Iter` - `as_mut(&mut self) -> Option<&mut T>` - `get_or_insert(&mut self, v: T) -> &mut T` - `get_or_insert_with(&mut self, f: F) -> &mut T where F: FnOnce() -> T` - `iter_mut(&mut self) -> IterMut` - `replace(&mut self, value: T) -> Option` - `take(&mut self) -> Option` - `and(self, optb: Option) -> Option` - `and_then(self, f: F) -> Option where F: FnOnce(T) -> Option` - `as_pin_mut(self: Pin<&'a mut Option>) -> Option>` - `as_pin_ref(self: Pin<&'a Option>) -> Option>` - `cloned(self) -> Option` - `copied(self) -> Option` - `expect(self, msg: &str) -> T` - `filter

(self, predicate: P) -> Option where P: FnOnce(&T) -> bool` - `map(self, f: F) -> Option where F: FnOnce(T) -> U` - `map_or(self, default: U, f: F) -> U where F: FnOnce(T) -> U` - `map_or_else(self, default: D, f: F) -> U where D: FnOnce() -> U, F: FnOnce(T) -> U` - `ok_or(self, err: E) -> Result` - `ok_or_else(self, err: F) -> Result where F: FnOnce() -> E` - `or(self, optb: Option) -> Option` - `or_else(self, f: F) -> Option where F: FnOnce() -> Option` - `transpose(self) -> Result, E>` - `unwrap(self) -> T` - `unwrap_or(self, def: T) -> T` - `unwrap_or_default(self) -> T` - `unwrap_or_else(self, f: F) -> T where F: FnOnce() -> T` - `xor(self, optb: Option) -> Option` Implements: - `impl<'_, T> Option<&'_ T> where T: Clone` - `impl<'_, T> Option<&'_ T> where T: Copy` - `impl<'_, T> Option<&'_ mut T> where T: Clone` - `impl<'_, T> Option<&'_ mut T> where T: Copy` - `impl<'a, T> From<&'a Option> for Option<&'a T>` - `impl<'a, T> From<&'a mut Option> for Option<&'a mut T>` - `impl<'a, T> IntoIterator for &'a Option` - `impl<'a, T> IntoIterator for &'a mut Option` - `impl FromIterator> for Option where V: FromIterator` - `impl Option>` - `impl Clone for Option where T: Clone` - `impl Copy for Option where T: Copy` - `impl Debug for Option where T: Debug` - `impl Default for Option` - `impl Eq for Option where T: Eq` - `impl From for Option` - `impl Hash for Option where T: Hash` - `impl IntoIterator for Option` - `impl Option where T: Default` - `impl Option where T: Deref` - `impl Option` - `impl Ord for Option where T: Ord` - `impl PartialEq> for Option where T: PartialEq` - `impl PartialOrd> for Option where T: PartialOrd` - `impl Send for Option where T: Send` - `impl Sync for Option where T: Sync` - `impl Try for Option` ## std::result::Result (prelude) enum Result { Ok(T), Err(E), } Methods: - `as_ref(&self) -> Result<&T, &E>` - `deref(&self) -> Result<&::Target, &::Target>` - `deref_err(&self) -> Result<&T, &::Target>` - `deref_ok(&self) -> Result<&::Target, &E>` - `is_err(&self) -> bool` - `is_ok(&self) -> bool` - `iter(&self) -> Iter` - `as_mut(&mut self) -> Result<&mut T, &mut E>` - `iter_mut(&mut self) -> IterMut` - `and(self, res: Result) -> Result` - `and_then(self, op: F) -> Result where F: FnOnce(T) -> Result` - `err(self) -> Option` - `expect(self, msg: &str) -> T` - `expect_err(self, msg: &str) -> E` - `map(self, op: F) -> Result where F: FnOnce(T) -> U` - `map_err(self, op: O) -> Result where O: FnOnce(E) -> F` - `map_or_else(self, fallback: F, map: M) -> U where F: FnOnce(E) -> U, M: FnOnce(T) -> U` - `ok(self) -> Option` - `or(self, res: Result) -> Result` - `or_else(self, op: O) -> Result where O: FnOnce(E) -> Result` - `transpose(self) -> Option>` - `unwrap(self) -> T` - `unwrap_err(self) -> E` - `unwrap_or(self, optb: T) -> T` - `unwrap_or_default(self) -> T` - `unwrap_or_else(self, op: F) -> T where F: FnOnce(E) -> T` Implements: - `impl<'a, T, E> IntoIterator for &'a Result` - `impl<'a, T, E> IntoIterator for &'a mut Result` - `impl FromIterator> for Result where V: FromIterator` - `impl Termination for Result` - `impl Termination for Result<(), E>` - `impl Clone for Result where E: Clone, T: Clone` - `impl Copy for Result where E: Copy, T: Copy` - `impl Debug for Result where E: Debug, T: Debug` - `impl Eq for Result where E: Eq, T: Eq` - `impl Hash for Result where E: Hash, T: Hash` - `impl IntoIterator for Result` - `impl Ord for Result where E: Ord, T: Ord` - `impl PartialEq> for Result where E: PartialEq, T: PartialEq` - `impl PartialOrd> for Result where E: PartialOrd, T: PartialOrd` - `impl Result, E>` - `impl Result where E: Debug` - `impl Result where E: Deref, T: Deref` - `impl Result where E: Deref` - `impl Result where T: Debug` - `impl Result where T: Default` - `impl Result where T: Deref` - `impl Result` - `impl Send for Result where E: Send, T: Send` - `impl Sync for Result where E: Sync, T: Sync` - `impl Try for Result` - `impl Product> for Result where T: Product` - `impl Sum> for Result where T: Sum` ## std::ops::Deref trait Deref { type Target: ?Sized; } Requires: - `deref(&self) -> &Self::Target` ## std::ops::Drop (prelude) trait Drop Requires: - `drop(&mut self)` ## std::ops::Fn (prelude) trait Fn: FnMut Requires: - `call(&self, args: Args) -> Self::Output` ## std::ops::FnMut (prelude) trait FnMut: FnOnce Requires: - `call_mut(&mut self, args: Args) -> Self::Output` ## std::ops::FnOnce (prelude) trait FnOnce { type Output; } Requires: - `call_once(self, args: Args) -> Self::Output` ## std::pin::Pin struct Pin

{ /* ... */ } Methods: - `new(pointer: P) -> Pin

` - `new_unchecked(pointer: P) -> Pin

` - `as_ref(&self) -> Pin<&

::Target>` - `as_mut(&mut self) -> Pin<&mut

::Target>` - `set(&mut self, value:

::Target) where

::Target: Sized` - `get_mut(self) -> &'a mut T where T: Unpin` - `get_ref(self) -> &'a T` - `into_ref(self) -> Pin<&'a T>` - `get_unchecked_mut(self) -> &'a mut T` - `map_unchecked(self, func: F) -> Pin<&'a U> where F: FnOnce(&T) -> &U` - `map_unchecked_mut(self, func: F) -> Pin<&'a mut U> where F: FnOnce(&mut T) -> &mut U` Implements: - `impl<'_, G> Generator for Pin<&'_ mut G> where G: Generator + ?Sized` - `impl<'a, P, U> DispatchFromDyn> for Pin

where P: DispatchFromDyn` - `impl Generator for Pin> where G: Generator + ?Sized` - `impl PartialEq> for Pin

where P: PartialEq` - `impl PartialOrd> for Pin

where P: PartialOrd` - `impl CoerceUnsized> for Pin

where P: CoerceUnsized` - `impl

Clone for Pin

where P: Clone` - `impl

Copy for Pin

where P: Copy` - `impl

Debug for Pin

where P: Debug` - `impl

Deref for Pin

where P: Deref` - `impl

DerefMut for Pin

where P: DerefMut,

::Target: Unpin` - `impl

Display for Pin

where P: Display` - `impl

Eq for Pin

where P: Eq` - `impl

Future for Pin

where P: Unpin + DerefMut,

::Target: Future` - `impl

Hash for Pin

where P: Hash` - `impl

Ord for Pin

where P: Ord` - `impl

Pointer for Pin

where P: Pointer` - `impl

Send for Pin

where P: Send` - `impl

Sync for Pin

where P: Sync` - `impl From> for Pin> where T: ?Sized` ## std::ptr::NonNull struct NonNull where T: ?Sized Methods: - `new_unchecked(ptr: *mut T) -> NonNull` - `dangling() -> NonNull` - `new(ptr: *mut T) -> Option>` - `as_ref(&self) -> &T` - `as_mut(&mut self) -> &mut T` - `as_ptr(self) -> *mut T` - `cast(self) -> NonNull` Implements: - `impl<'a, T> From<&'a T> for NonNull where T: ?Sized` - `impl<'a, T> From<&'a mut T> for NonNull where T: ?Sized` - `impl CoerceUnsized> for NonNull where T: Unsize + ?Sized, U: ?Sized` - `impl DispatchFromDyn> for NonNull where T: Unsize + ?Sized, U: ?Sized` - `impl UnwindSafe for NonNull` - `impl !Send for NonNull where T: ?Sized` - `impl !Sync for NonNull where T: ?Sized` - `impl Clone for NonNull where T: ?Sized` - `impl Copy for NonNull where T: ?Sized` - `impl Debug for NonNull where T: ?Sized` - `impl Eq for NonNull where T: ?Sized` - `impl From> for NonNull where T: ?Sized` - `impl Hash for NonNull where T: ?Sized` - `impl Ord for NonNull where T: ?Sized` - `impl PartialEq> for NonNull where T: ?Sized` - `impl PartialOrd> for NonNull where T: ?Sized` - `impl Pointer for NonNull where T: ?Sized` ## std::string::String (prelude) struct String Methods: - `from_raw_parts( buf: *mut u8, length: usize, capacity: usize ) -> String` - `from_utf16(v: &[u16]) -> Result` - `from_utf16_lossy(v: &[u16]) -> String` - `from_utf8(vec: Vec) -> Result` - `from_utf8_lossy(v: &'a [u8]) -> Cow<'a, str>` - `from_utf8_unchecked(bytes: Vec) -> String` - `new() -> String` - `with_capacity(capacity: usize) -> String` - `as_bytes(&self) -> &[u8]` - `as_ptr(&self) -> *const u8` - `as_str(&self) -> &str` - `bytes(&self) -> Bytes` - `capacity(&self) -> usize` - `char_indices(&self) -> CharIndices` - `chars(&self) -> Chars` - `contains<'a, P>(&'a self, pat: P) -> bool where P: Pattern<'a>` - `encode_utf16(&self) -> EncodeUtf16` - `ends_with<'a, P>(&'a self, pat: P) -> bool where P: Pattern<'a>,

>::Searcher: ReverseSearcher<'a>` - `eq_ignore_ascii_case(&self, other: &str) -> bool` - `escape_debug(&self) -> EscapeDebug` - `escape_default(&self) -> EscapeDefault` - `escape_unicode(&self) -> EscapeUnicode` - `find<'a, P>(&'a self, pat: P) -> Option where P: Pattern<'a>` - `get(&self, i: I) -> Option<&>::Output> where I: SliceIndex` - `get_unchecked(&self, i: I) -> &>::Output where I: SliceIndex` - `is_ascii(&self) -> bool` - `is_char_boundary(&self, index: usize) -> bool` - `is_empty(&self) -> bool` - `len(&self) -> usize` - `lines(&self) -> Lines` - `lines_any(&self) -> LinesAny` - `match_indices<'a, P>(&'a self, pat: P) -> MatchIndices<'a, P> where P: Pattern<'a>` - `matches<'a, P>(&'a self, pat: P) -> Matches<'a, P> where P: Pattern<'a>` - `parse(&self) -> Result::Err> where F: FromStr` - `repeat(&self, n: usize) -> String` - `replace<'a, P>(&'a self, from: P, to: &str) -> String where P: Pattern<'a>` - `replacen<'a, P>(&'a self, pat: P, to: &str, count: usize) -> String where P: Pattern<'a>` - `rfind<'a, P>(&'a self, pat: P) -> Option where P: Pattern<'a>,

>::Searcher: ReverseSearcher<'a>` - `rmatch_indices<'a, P>(&'a self, pat: P) -> RMatchIndices<'a, P> where P: Pattern<'a>,

>::Searcher: ReverseSearcher<'a>` - `rmatches<'a, P>(&'a self, pat: P) -> RMatches<'a, P> where P: Pattern<'a>,

>::Searcher: ReverseSearcher<'a>` - `rsplit<'a, P>(&'a self, pat: P) -> RSplit<'a, P> where P: Pattern<'a>,

>::Searcher: ReverseSearcher<'a>` - `rsplit_terminator<'a, P>(&'a self, pat: P) -> RSplitTerminator<'a, P> where P: Pattern<'a>,

>::Searcher: ReverseSearcher<'a>` - `rsplitn<'a, P>(&'a self, n: usize, pat: P) -> RSplitN<'a, P> where P: Pattern<'a>,

>::Searcher: ReverseSearcher<'a>` - `slice_unchecked(&self, begin: usize, end: usize) -> &str` - `split<'a, P>(&'a self, pat: P) -> Split<'a, P> where P: Pattern<'a>` - `split_ascii_whitespace(&self) -> SplitAsciiWhitespace` - `split_at(&self, mid: usize) -> (&str, &str)` - `split_terminator<'a, P>(&'a self, pat: P) -> SplitTerminator<'a, P> where P: Pattern<'a>` - `split_whitespace(&self) -> SplitWhitespace` - `splitn<'a, P>(&'a self, n: usize, pat: P) -> SplitN<'a, P> where P: Pattern<'a>` - `starts_with<'a, P>(&'a self, pat: P) -> bool where P: Pattern<'a>` - `to_ascii_lowercase(&self) -> String` - `to_ascii_uppercase(&self) -> String` - `to_lowercase(&self) -> String` - `to_uppercase(&self) -> String` - `trim(&self) -> &str` - `trim_end(&self) -> &str` - `trim_end_matches<'a, P>(&'a self, pat: P) -> &'a str where P: Pattern<'a>,

>::Searcher: ReverseSearcher<'a>` - `trim_left(&self) -> &str` - `trim_left_matches<'a, P>(&'a self, pat: P) -> &'a str where P: Pattern<'a>` - `trim_matches<'a, P>(&'a self, pat: P) -> &'a str where P: Pattern<'a>,

>::Searcher: DoubleEndedSearcher<'a>` - `trim_right(&self) -> &str` - `trim_right_matches<'a, P>(&'a self, pat: P) -> &'a str where P: Pattern<'a>,

>::Searcher: ReverseSearcher<'a>` - `trim_start(&self) -> &str` - `trim_start_matches<'a, P>(&'a self, pat: P) -> &'a str where P: Pattern<'a>` - `as_bytes_mut(&mut self) -> &mut [u8]` - `as_mut_ptr(&mut self) -> *mut u8` - `as_mut_str(&mut self) -> &mut str` - `as_mut_vec(&mut self) -> &mut Vec` - `clear(&mut self)` - `drain(&mut self, range: R) -> Drain where R: RangeBounds` - `get_mut( &mut self, i: I ) -> Option<&mut >::Output> where I: SliceIndex` - `get_unchecked_mut( &mut self, i: I ) -> &mut >::Output where I: SliceIndex` - `insert(&mut self, idx: usize, ch: char)` - `insert_str(&mut self, idx: usize, string: &str)` - `make_ascii_lowercase(&mut self)` - `make_ascii_uppercase(&mut self)` - `pop(&mut self) -> Option` - `push(&mut self, ch: char)` - `push_str(&mut self, string: &str)` - `remove(&mut self, idx: usize) -> char` - `replace_range(&mut self, range: R, replace_with: &str) where R: RangeBounds` - `reserve(&mut self, additional: usize)` - `reserve_exact(&mut self, additional: usize)` - `retain(&mut self, f: F) where F: FnMut(char) -> bool` - `shrink_to(&mut self, min_capacity: usize)` - `shrink_to_fit(&mut self)` - `slice_mut_unchecked( &mut self, begin: usize, end: usize ) -> &mut str` - `split_at_mut(&mut self, mid: usize) -> (&mut str, &mut str)` - `split_off(&mut self, at: usize) -> String` - `truncate(&mut self, new_len: usize)` - `try_reserve( &mut self, additional: usize ) -> Result<(), CollectionAllocErr>` - `try_reserve_exact( &mut self, additional: usize ) -> Result<(), CollectionAllocErr>` - `into_boxed_str(self) -> Box` - `into_bytes(self) -> Vec` Implements: - `impl AsRef for String` - `impl AsRef for String` - `impl AsRef<[u8]> for String` - `impl AsRef for String` - `impl Borrow for String` - `impl Clone for String` - `impl Debug for String` - `impl Default for String` - `impl Deref for String` - `impl DerefMut for String` - `impl Display for String` - `impl Eq for String` - `impl Extend for String` - `impl Extend for String` - `impl From> for String` - `impl From for Arc` - `impl From for Box` - `impl From for Box` - `impl From for Box` - `impl From for OsString` - `impl From for PathBuf` - `impl From for Rc` - `impl From for Vec` - `impl FromIterator for String` - `impl FromIterator for String` - `impl FromStr for String` - `impl Hash for String` - `impl Index> for String` - `impl Index> for String` - `impl Index for String` - `impl Index> for String` - `impl Index> for String` - `impl Index> for String` - `impl IndexMut> for String` - `impl IndexMut> for String` - `impl IndexMut for String` - `impl IndexMut> for String` - `impl IndexMut> for String` - `impl IndexMut> for String` - `impl Ord for String` - `impl PartialEq for String` - `impl PartialOrd for String` - `impl Send for String` - `impl String` - `impl Sync for String` - `impl ToSocketAddrs for String` - `impl ToString for String` - `impl Write for String` - `impl<'_> Add<&'_ str> for String` - `impl<'_> AddAssign<&'_ str> for String` - `impl<'a, 'b> PartialEq<&'a str> for String` - `impl<'a, 'b> PartialEq> for String` - `impl<'a, 'b> PartialEq for &'a str` - `impl<'a, 'b> PartialEq for Cow<'a, str>` - `impl<'a, 'b> PartialEq for str` - `impl<'a, 'b> PartialEq for String` - `impl<'a, 'b> Pattern<'a> for &'b String` - `impl<'a> Extend<&'a char> for String` - `impl<'a> Extend<&'a str> for String` - `impl<'a> Extend> for String` - `impl<'a> From<&'a String> for Cow<'a, str>` - `impl<'a> From<&'a str> for String` - `impl<'a> From> for String` - `impl<'a> From for Cow<'a, str>` - `impl<'a> FromIterator<&'a char> for String` - `impl<'a> FromIterator<&'a str> for String` - `impl<'a> FromIterator> for String` - `impl<'a> FromIterator for Cow<'a, str>` ## std::string::ToString (prelude) trait ToString Requires: - `to_string(&self) -> String` ## std::vec::Vec (prelude) struct Vec Methods: - `from_raw_parts( ptr: *mut T, length: usize, capacity: usize ) -> Vec` - `new() -> Vec` - `with_capacity(capacity: usize) -> Vec` - `as_ptr(&self) -> *const T` - `as_slice(&self) -> &[T]` - `binary_search(&self, x: &T) -> Result where T: Ord` - `binary_search_by<'a, F>(&'a self, f: F) -> Result where F: FnMut(&'a T) -> Ordering` - `binary_search_by_key<'a, B, F>( &'a self, b: &B, f: F ) -> Result where B: Ord, F: FnMut(&'a T) -> B` - `capacity(&self) -> usize` - `chunks(&self, chunk_size: usize) -> Chunks` - `chunks_exact(&self, chunk_size: usize) -> ChunksExact` - `contains(&self, x: &T) -> bool where T: PartialEq` - `ends_with(&self, needle: &[T]) -> bool where T: PartialEq` - `eq_ignore_ascii_case(&self, other: &[u8]) -> bool` - `first(&self) -> Option<&T>` - `get(&self, index: I) -> Option<&>::Output> where I: SliceIndex<[T]>` - `is_ascii(&self) -> bool` - `is_empty(&self) -> bool` - `is_sorted(&self) -> bool where T: PartialOrd` - `is_sorted_by(&self, compare: F) -> bool where F: FnMut(&T, &T) -> Option` - `is_sorted_by_key(&self, f: F) -> bool where F: FnMut(&T) -> K, K: PartialOrd` - `iter(&self) -> Iter` - `last(&self) -> Option<&T>` - `len(&self) -> usize` - `align_to(&self) -> (&[T], &[U], &[T])` - `get_unchecked( &self, index: I ) -> &>::Output where I: SliceIndex<[T]>` - `rchunks(&self, chunk_size: usize) -> RChunks` - `rchunks_exact(&self, chunk_size: usize) -> RChunksExact` - `repeat(&self, n: usize) -> Vec where T: Copy` - `rsplit(&self, pred: F) -> RSplit where F: FnMut(&T) -> bool` - `rsplitn(&self, n: usize, pred: F) -> RSplitN where F: FnMut(&T) -> bool` - `split(&self, pred: F) -> Split where F: FnMut(&T) -> bool` - `split_at(&self, mid: usize) -> (&[T], &[T])` - `split_first(&self) -> Option<(&T, &[T])>` - `split_last(&self) -> Option<(&T, &[T])>` - `splitn(&self, n: usize, pred: F) -> SplitN where F: FnMut(&T) -> bool` - `starts_with(&self, needle: &[T]) -> bool where T: PartialEq` - `to_ascii_lowercase(&self) -> Vec` - `to_ascii_uppercase(&self) -> Vec` - `to_vec(&self) -> Vec where T: Clone` - `windows(&self, size: usize) -> Windows` - `align_to_mut(&mut self) -> (&mut [T], &mut [U], &mut [T])` - `append(&mut self, other: &mut Vec)` - `as_mut_ptr(&mut self) -> *mut T` - `as_mut_slice(&mut self) -> &mut [T]` - `chunks_exact_mut(&mut self, chunk_size: usize) -> ChunksExactMut` - `chunks_mut(&mut self, chunk_size: usize) -> ChunksMut` - `clear(&mut self)` - `clone_from_slice(&mut self, src: &[T]) where T: Clone` - `copy_from_slice(&mut self, src: &[T]) where T: Copy` - `copy_within(&mut self, src: R, dest: usize) where R: RangeBounds, T: Copy` - `dedup(&mut self)` - `dedup_by(&mut self, same_bucket: F) where F: FnMut(&mut T, &mut T) -> bool` - `dedup_by_key(&mut self, key: F) where F: FnMut(&mut T) -> K, K: PartialEq` - `drain(&mut self, range: R) -> Drain where R: RangeBounds` - `drain_filter(&mut self, filter: F) -> DrainFilter where F: FnMut(&mut T) -> bool` - `extend_from_slice(&mut self, other: &[T])` - `first_mut(&mut self) -> Option<&mut T>` - `get_mut( &mut self, index: I ) -> Option<&mut >::Output> where I: SliceIndex<[T]>` - `get_unchecked_mut( &mut self, index: I ) -> &mut >::Output where I: SliceIndex<[T]>` - `insert(&mut self, index: usize, element: T)` - `iter_mut(&mut self) -> IterMut` - `last_mut(&mut self) -> Option<&mut T>` - `make_ascii_lowercase(&mut self)` - `make_ascii_uppercase(&mut self)` - `partition_dedup(&mut self) -> (&mut [T], &mut [T]) where T: PartialEq` - `partition_dedup_by(&mut self, same_bucket: F) -> (&mut [T], &mut [T]) where F: FnMut(&mut T, &mut T) -> bool` - `partition_dedup_by_key(&mut self, key: F) -> (&mut [T], &mut [T]) where F: FnMut(&mut T) -> K, K: PartialEq` - `pop(&mut self) -> Option` - `push(&mut self, value: T)` - `rchunks_exact_mut(&mut self, chunk_size: usize) -> RChunksExactMut` - `rchunks_mut(&mut self, chunk_size: usize) -> RChunksMut` - `remove(&mut self, index: usize) -> T` - `remove_item(&mut self, item: &T) -> Option` - `reserve(&mut self, additional: usize)` - `reserve_exact(&mut self, additional: usize)` - `resize(&mut self, new_len: usize, value: T)` - `resize_default(&mut self, new_len: usize)` - `resize_with(&mut self, new_len: usize, f: F) where F: FnMut() -> T` - `retain(&mut self, f: F) where F: FnMut(&T) -> bool` - `reverse(&mut self)` - `rotate_left(&mut self, mid: usize)` - `rotate_right(&mut self, k: usize)` - `rsplit_mut(&mut self, pred: F) -> RSplitMut where F: FnMut(&T) -> bool` - `rsplitn_mut(&mut self, n: usize, pred: F) -> RSplitNMut where F: FnMut(&T) -> bool` - `set_len(&mut self, new_len: usize)` - `shrink_to(&mut self, min_capacity: usize)` - `shrink_to_fit(&mut self)` - `sort(&mut self) where T: Ord` - `sort_by(&mut self, compare: F) where F: FnMut(&T, &T) -> Ordering` - `sort_by_cached_key(&mut self, f: F) where F: FnMut(&T) -> K, K: Ord` - `sort_by_key(&mut self, f: F) where F: FnMut(&T) -> K, K: Ord` - `sort_unstable(&mut self) where T: Ord` - `sort_unstable_by(&mut self, compare: F) where F: FnMut(&T, &T) -> Ordering` - `sort_unstable_by_key(&mut self, f: F) where F: FnMut(&T) -> K, K: Ord` - `splice( &mut self, range: R, replace_with: I ) -> Splice<::IntoIter> where I: IntoIterator, R: RangeBounds` - `split_at_mut(&mut self, mid: usize) -> (&mut [T], &mut [T])` - `split_first_mut(&mut self) -> Option<(&mut T, &mut [T])>` - `split_last_mut(&mut self) -> Option<(&mut T, &mut [T])>` - `split_mut(&mut self, pred: F) -> SplitMut where F: FnMut(&T) -> bool` - `split_off(&mut self, at: usize) -> Vec` - `splitn_mut(&mut self, n: usize, pred: F) -> SplitNMut where F: FnMut(&T) -> bool` - `swap(&mut self, a: usize, b: usize)` - `swap_remove(&mut self, index: usize) -> T` - `swap_with_slice(&mut self, other: &mut [T])` - `truncate(&mut self, len: usize)` - `try_reserve( &mut self, additional: usize ) -> Result<(), CollectionAllocErr>` - `try_reserve_exact( &mut self, additional: usize ) -> Result<(), CollectionAllocErr>` - `into_boxed_slice(self) -> Box<[T]>` Implements: - `impl From for Vec` - `impl From for Vec` - `impl Write for Vec` - `impl<'a, 'b, A, B> PartialEq<&'b [B]> for Vec where A: PartialEq` - `impl<'a, 'b, A, B> PartialEq<&'b mut [B]> for Vec where A: PartialEq` - `impl<'a, 'b, A, B> PartialEq> for Cow<'a, [A]> where A: Clone + PartialEq` - `impl<'a, 'b, A, B> PartialEq> for Vec where A: PartialEq` - `impl<'a, T> Extend<&'a T> for Vec where T: 'a + Copy` - `impl<'a, T> From<&'a Vec> for Cow<'a, [T]> where T: Clone` - `impl<'a, T> From<&'a [T]> for Vec where T: Clone` - `impl<'a, T> From<&'a mut [T]> for Vec where T: Clone` - `impl<'a, T> From> for Vec where [T]: ToOwned, <[T] as ToOwned>::Owned == Vec` - `impl<'a, T> From> for Cow<'a, [T]> where T: Clone` - `impl<'a, T> IntoIterator for &'a Vec` - `impl<'a, T> IntoIterator for &'a mut Vec` - `impl<'a> From<&'a str> for Vec` - `impl PartialEq> for VecDeque where A: PartialEq` - `impl Index for Vec where I: SliceIndex<[T]>` - `impl IndexMut for Vec where I: SliceIndex<[T]>` - `impl AsMut> for Vec` - `impl AsMut<[T]> for Vec` - `impl AsRef> for Vec` - `impl AsRef<[T]> for Vec` - `impl Borrow<[T]> for Vec` - `impl BorrowMut<[T]> for Vec` - `impl Clone for Vec where T: Clone` - `impl Debug for Vec where T: Debug` - `impl Default for Vec` - `impl Deref for Vec` - `impl DerefMut for Vec` - `impl Drop for Vec` - `impl Eq for Vec where T: Eq` - `impl Extend for Vec` - `impl From> for Vec` - `impl From> for Vec` - `impl From> for Arc<[T]>` - `impl From> for BinaryHeap where T: Ord` - `impl From> for Box<[T]>` - `impl From> for Rc<[T]>` - `impl From> for VecDeque` - `impl From> for Vec` - `impl FromIterator for Vec` - `impl Hash for Vec where T: Hash` - `impl IntoIterator for Vec` - `impl Ord for Vec where T: Ord` - `impl PartialOrd> for Vec where T: PartialOrd` - `impl Send for Vec where T: Send` - `impl Sync for Vec where T: Sync`

(&mut self, predicate: P) -> Option where P: FnMut(&Self::Item) -> bool` - `try_rfold(&mut self, init: B, f: F) -> R where F: FnMut(B, Self::Item) -> R, R: Try` - `rfold(self, accum: B, f: F) -> B where F: FnMut(B, Self::Item) -> B` ## std::iter::ExactSizeIterator (prelude) trait ExactSizeIterator: Iterator Provides: - `is_empty(&self) -> bool` - `len(&self) -> usize` ## std::iter::Extend (prelude) trait Extend Requires: - `extend(&mut self, iter: T) where T: IntoIterator` ## std::iter::IntoIterator (prelude) trait IntoIterator where ::Item == Self::Item { type Item; type IntoIter: Iterator; } Requires: - `into_iter(self) -> Self::IntoIter` ## std::iter::Iterator (prelude) trait Iterator { type Item; } Requires: - `next(&mut self) -> Option` Provides: - `size_hint(&self) -> (usize, Option)` - `all(&mut self, f: F) -> bool where F: FnMut(Self::Item) -> bool` - `any(&mut self, f: F) -> bool where F: FnMut(Self::Item) -> bool` - `by_ref(&mut self) -> &mut Self` - `find