1.0.0[]Primitive Type reference

References, both shared and mutable.

A reference represents a borrow of some owned value. You can get one by using the & or &mut operators on a value, or by using a ref or ref mut pattern.

For those familiar with pointers, a reference is just a pointer that is assumed to be aligned, not null, and pointing to memory containing a valid value of T - for example, &bool can only point to an allocation containing the integer values 1 (true) or 0 (false), but creating a &bool that points to an allocation containing the value 3 causes undefined behaviour. In fact, Option<&T> has the same memory representation as a nullable but aligned pointer, and can be passed across FFI boundaries as such.

In most cases, references can be used much like the original value. Field access, method calling, and indexing work the same (save for mutability rules, of course). In addition, the comparison operators transparently defer to the referent's implementation, allowing references to be compared the same as owned values.

References have a lifetime attached to them, which represents the scope for which the borrow is valid. A lifetime is said to "outlive" another one if its representative scope is as long or longer than the other. The 'static lifetime is the longest lifetime, which represents the total life of the program. For example, string literals have a 'static lifetime because the text data is embedded into the binary of the program, rather than in an allocation that needs to be dynamically managed.

&mut T references can be freely coerced into &T references with the same referent type, and references with longer lifetimes can be freely coerced into references with shorter ones.

Reference equality by address, instead of comparing the values pointed to, is accomplished via implicit reference-pointer coercion and raw pointer equality via ptr::eq, while PartialEq compares values.

use std::ptr;

let five = 5;
let other_five = 5;
let five_ref = &five;
let same_five_ref = &five;
let other_five_ref = &other_five;

assert!(five_ref == same_five_ref);
assert!(five_ref == other_five_ref);

assert!(ptr::eq(five_ref, same_five_ref));
assert!(!ptr::eq(five_ref, other_five_ref));Run

For more information on how to use references, see the book's section on "References and Borrowing".

Trait implementations

The following traits are implemented for all &T, regardless of the type of its referent:

&mut T references get all of the above except Copy and Clone (to prevent creating multiple simultaneous mutable borrows), plus the following, regardless of the type of its referent:

The following traits are implemented on &T references if the underlying T also implements that trait:

&mut T references get all of the above except ToSocketAddrs, plus the following, if T implements that trait:

Note that due to method call deref coercion, simply calling a trait method will act like they work on references as well as they do on owned values! The implementations described here are meant for generic contexts, where the final type T is a type parameter or otherwise not locally known.

Trait Implementations

impl<'_, T> Octal for &'_ T where
    T: Octal + ?Sized
[src]

impl<'_, T> Octal for &'_ mut T where
    T: Octal + ?Sized
[src]

impl<'_, T> Clone for &'_ T where
    T: ?Sized
[src]

fn clone_from(&mut self, source: &Self)[src]

Performs copy-assignment from source. Read more

impl<'_, W> Write for &'_ mut W where
    W: Write + ?Sized
1.4.0[src]

impl<'_, T> Hash for &'_ T where
    T: Hash + ?Sized
[src]

fn hash_slice<H>(data: &[Self], state: &mut H) where
    H: Hasher
1.3.0[src]

Feeds a slice of this type into the given [Hasher]. Read more

impl<'_, T> Hash for &'_ mut T where
    T: Hash + ?Sized
[src]

fn hash_slice<H>(data: &[Self], state: &mut H) where
    H: Hasher
1.3.0[src]

Feeds a slice of this type into the given [Hasher]. Read more

impl<'_, T> Copy for &'_ T where
    T: ?Sized
[src]

impl<'_, A, F> FnMut<A> for &'_ F where
    F: Fn<A> + ?Sized
[src]

impl<'_, A, F> FnMut<A> for &'_ mut F where
    F: FnMut<A> + ?Sized
[src]

impl<'_, I> FusedIterator for &'_ mut I where
    I: FusedIterator + ?Sized
1.26.0[src]

impl<'_, T> Pointer for &'_ T where
    T: ?Sized
[src]

impl<'_, T> Pointer for &'_ mut T where
    T: ?Sized
[src]

impl<'_, T> Binary for &'_ T where
    T: Binary + ?Sized
[src]

impl<'_, T> Binary for &'_ mut T where
    T: Binary + ?Sized
[src]

impl<'a, I> DoubleEndedIterator for &'a mut I where
    I: DoubleEndedIterator + ?Sized
[src]

fn try_rfold<B, F, R>(&mut self, init: B, f: F) -> R where
    F: FnMut(B, Self::Item) -> R,
    R: Try<Ok = B>, 
1.27.0[src]

This is the reverse version of [try_fold()]: it takes elements starting from the back of the iterator. Read more

fn rfold<B, F>(self, accum: B, f: F) -> B where
    F: FnMut(B, Self::Item) -> B, 
1.27.0[src]

An iterator method that reduces the iterator's elements to a single, final value, starting from the back. Read more

fn rfind<P>(&mut self, predicate: P) -> Option<Self::Item> where
    P: FnMut(&Self::Item) -> bool
1.27.0[src]

Searches for an element of an iterator from the back that satisfies a predicate. Read more

impl<'_, H> Hasher for &'_ mut H where
    H: Hasher + ?Sized
1.22.0[src]

impl<'_, T> DerefMut for &'_ mut T where
    T: ?Sized
[src]

impl<'_, T> Borrow<T> for &'_ mut T where
    T: ?Sized
[src]

impl<'_, T> Borrow<T> for &'_ T where
    T: ?Sized
[src]

impl<'_, T, U> AsRef<U> for &'_ mut T where
    T: AsRef<U> + ?Sized,
    U: ?Sized
[src]

impl<'_, T, U> AsRef<U> for &'_ T where
    T: AsRef<U> + ?Sized,
    U: ?Sized
[src]

impl<'_, A> Eq for &'_ mut A where
    A: Eq + ?Sized
[src]

impl<'_, A> Eq for &'_ A where
    A: Eq + ?Sized
[src]

impl<'_, I> ExactSizeIterator for &'_ mut I where
    I: ExactSizeIterator + ?Sized
[src]

impl<'_, I> Iterator for &'_ mut I where
    I: Iterator + ?Sized
[src]

type Item = <I as Iterator>::Item

The type of the elements being iterated over.

fn count(self) -> usize[src]

Consumes the iterator, counting the number of iterations and returning it. Read more

fn last(self) -> Option<Self::Item>[src]

Consumes the iterator, returning the last element. Read more

Important traits for StepBy<I>
fn step_by(self, step: usize) -> StepBy<Self>1.28.0[src]

Creates an iterator starting at the same point, but stepping by the given amount at each iteration. Read more

Important traits for Chain<A, B>
fn chain<U>(self, other: U) -> Chain<Self, <U as IntoIterator>::IntoIter> where
    U: IntoIterator<Item = Self::Item>, 
[src]

Takes two iterators and creates a new iterator over both in sequence. Read more

Important traits for Zip<A, B>
fn zip<U>(self, other: U) -> Zip<Self, <U as IntoIterator>::IntoIter> where
    U: IntoIterator
[src]

'Zips up' two iterators into a single iterator of pairs. Read more

Important traits for Map<I, F>
fn map<B, F>(self, f: F) -> Map<Self, F> where
    F: FnMut(Self::Item) -> B, 
[src]

Takes a closure and creates an iterator which calls that closure on each element. Read more

fn for_each<F>(self, f: F) where
    F: FnMut(Self::Item), 
1.21.0[src]

Calls a closure on each element of an iterator. Read more

Important traits for Filter<I, P>
fn filter<P>(self, predicate: P) -> Filter<Self, P> where
    P: FnMut(&Self::Item) -> bool
[src]

Creates an iterator which uses a closure to determine if an element should be yielded. Read more

Important traits for FilterMap<I, F>
fn filter_map<B, F>(self, f: F) -> FilterMap<Self, F> where
    F: FnMut(Self::Item) -> Option<B>, 
[src]

Creates an iterator that both filters and maps. Read more

Important traits for Enumerate<I>
fn enumerate(self) -> Enumerate<Self>[src]

Creates an iterator which gives the current iteration count as well as the next value. Read more

Important traits for Peekable<I>
fn peekable(self) -> Peekable<Self>[src]

Creates an iterator which can use peek to look at the next element of the iterator without consuming it. Read more

Important traits for SkipWhile<I, P>
fn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P> where
    P: FnMut(&Self::Item) -> bool
[src]

Creates an iterator that [skip]s elements based on a predicate. Read more

Important traits for TakeWhile<I, P>
fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P> where
    P: FnMut(&Self::Item) -> bool
[src]

Creates an iterator that yields elements based on a predicate. Read more

Important traits for Skip<I>
fn skip(self, n: usize) -> Skip<Self>[src]

Creates an iterator that skips the first n elements. Read more

Important traits for Take<I>
fn take(self, n: usize) -> Take<Self>[src]

Creates an iterator that yields its first n elements. Read more

Important traits for Scan<I, St, F>
fn scan<St, B, F>(self, initial_state: St, f: F) -> Scan<Self, St, F> where
    F: FnMut(&mut St, Self::Item) -> Option<B>, 
[src]

An iterator adaptor similar to [fold] that holds internal state and produces a new iterator. Read more

Important traits for FlatMap<I, U, F>
fn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F> where
    F: FnMut(Self::Item) -> U,
    U: IntoIterator
[src]

Creates an iterator that works like map, but flattens nested structure. Read more

Important traits for Flatten<I>
fn flatten(self) -> Flatten<Self> where
    Self::Item: IntoIterator
1.29.0[src]

Creates an iterator that flattens nested structure. Read more

Important traits for Fuse<I>
fn fuse(self) -> Fuse<Self>[src]

Creates an iterator which ends after the first [None]. Read more

Important traits for Inspect<I, F>
fn inspect<F>(self, f: F) -> Inspect<Self, F> where
    F: FnMut(&Self::Item), 
[src]

Do something with each element of an iterator, passing the value on. Read more

Important traits for &'_ mut I
fn by_ref(&mut self) -> &mut Self[src]

Borrows an iterator, rather than consuming it. Read more

#[must_use = "if you really need to exhaust the iterator, consider `.for_each(drop)` instead"] fn collect<B>(self) -> B where
    B: FromIterator<Self::Item>, 
[src]

Transforms an iterator into a collection. Read more

fn partition<B, F>(self, f: F) -> (B, B) where
    B: Default + Extend<Self::Item>,
    F: FnMut(&Self::Item) -> bool
[src]

Consumes an iterator, creating two collections from it. Read more

fn partition_in_place<'a, T, P>(self, predicate: P) -> usize where
    P: FnMut(&T) -> bool,
    Self: DoubleEndedIterator<Item = &'a mut T>,
    T: 'a, 
[src]

🔬 This is a nightly-only experimental API. (iter_partition_in_place #62543)

new API

Reorder the elements of this iterator in-place according to the given predicate, such that all those that return true precede all those that return false. Returns the number of true elements found. Read more

fn is_partitioned<P>(self, predicate: P) -> bool where
    P: FnMut(Self::Item) -> bool
[src]

🔬 This is a nightly-only experimental API. (iter_is_partitioned #62544)

new API

Checks if the elements of this iterator are partitioned according to the given predicate, such that all those that return true precede all those that return false. Read more

fn try_fold<B, F, R>(&mut self, init: B, f: F) -> R where
    F: FnMut(B, Self::Item) -> R,
    R: Try<Ok = B>, 
1.27.0[src]

An iterator method that applies a function as long as it returns successfully, producing a single, final value. Read more

fn try_for_each<F, R>(&mut self, f: F) -> R where
    F: FnMut(Self::Item) -> R,
    R: Try<Ok = ()>, 
1.27.0[src]

An iterator method that applies a fallible function to each item in the iterator, stopping at the first error and returning that error. Read more

fn fold<B, F>(self, init: B, f: F) -> B where
    F: FnMut(B, Self::Item) -> B, 
[src]

An iterator method that applies a function, producing a single, final value. Read more

fn all<F>(&mut self, f: F) -> bool where
    F: FnMut(Self::Item) -> bool
[src]

Tests if every element of the iterator matches a predicate. Read more

fn any<F>(&mut self, f: F) -> bool where
    F: FnMut(Self::Item) -> bool
[src]

Tests if any element of the iterator matches a predicate. Read more

fn find<P>(&mut self, predicate: P) -> Option<Self::Item> where
    P: FnMut(&Self::Item) -> bool
[src]

Searches for an element of an iterator that satisfies a predicate. Read more

fn find_map<B, F>(&mut self, f: F) -> Option<B> where
    F: FnMut(Self::Item) -> Option<B>, 
1.30.0[src]

Applies function to the elements of iterator and returns the first non-none result. Read more

fn position<P>(&mut self, predicate: P) -> Option<usize> where
    P: FnMut(Self::Item) -> bool
[src]

Searches for an element in an iterator, returning its index. Read more

fn rposition<P>(&mut self, predicate: P) -> Option<usize> where
    P: FnMut(Self::Item) -> bool,
    Self: ExactSizeIterator + DoubleEndedIterator
[src]

Searches for an element in an iterator from the right, returning its index. Read more

fn max(self) -> Option<Self::Item> where
    Self::Item: Ord
[src]

Returns the maximum element of an iterator. Read more

fn min(self) -> Option<Self::Item> where
    Self::Item: Ord
[src]

Returns the minimum element of an iterator. Read more

fn max_by_key<B, F>(self, f: F) -> Option<Self::Item> where
    B: Ord,
    F: FnMut(&Self::Item) -> B, 
1.6.0[src]

Returns the element that gives the maximum value from the specified function. Read more

fn max_by<F>(self, compare: F) -> Option<Self::Item> where
    F: FnMut(&Self::Item, &Self::Item) -> Ordering
1.15.0[src]

Returns the element that gives the maximum value with respect to the specified comparison function. Read more

fn min_by_key<B, F>(self, f: F) -> Option<Self::Item> where
    B: Ord,
    F: FnMut(&Self::Item) -> B, 
1.6.0[src]

Returns the element that gives the minimum value from the specified function. Read more

fn min_by<F>(self, compare: F) -> Option<Self::Item> where
    F: FnMut(&Self::Item, &Self::Item) -> Ordering
1.15.0[src]

Returns the element that gives the minimum value with respect to the specified comparison function. Read more

Important traits for Rev<I>
fn rev(self) -> Rev<Self> where
    Self: DoubleEndedIterator
[src]

Reverses an iterator's direction. Read more

fn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB) where
    FromA: Default + Extend<A>,
    FromB: Default + Extend<B>,
    Self: Iterator<Item = (A, B)>, 
[src]

Converts an iterator of pairs into a pair of containers. Read more

Important traits for Copied<I>
fn copied<'a, T>(self) -> Copied<Self> where
    Self: Iterator<Item = &'a T>,
    T: 'a + Copy
1.36.0[src]

Creates an iterator which copies all of its elements. Read more

Important traits for Cloned<I>
fn cloned<'a, T>(self) -> Cloned<Self> where
    Self: Iterator<Item = &'a T>,
    T: 'a + Clone
[src]

Creates an iterator which [clone]s all of its elements. Read more

Important traits for Cycle<I>
fn cycle(self) -> Cycle<Self> where
    Self: Clone
[src]

Repeats an iterator endlessly. Read more

fn sum<S>(self) -> S where
    S: Sum<Self::Item>, 
1.11.0[src]

Sums the elements of an iterator. Read more

fn product<P>(self) -> P where
    P: Product<Self::Item>, 
1.11.0[src]

Iterates over the entire iterator, multiplying all the elements Read more

fn cmp<I>(self, other: I) -> Ordering where
    I: IntoIterator<Item = Self::Item>,
    Self::Item: Ord
1.5.0[src]

Lexicographically compares the elements of this Iterator with those of another. Read more

fn partial_cmp<I>(self, other: I) -> Option<Ordering> where
    I: IntoIterator,
    Self::Item: PartialOrd<<I as IntoIterator>::Item>, 
1.5.0[src]

Lexicographically compares the elements of this Iterator with those of another. Read more

fn eq<I>(self, other: I) -> bool where
    I: IntoIterator,
    Self::Item: PartialEq<<I as IntoIterator>::Item>, 
1.5.0[src]

Determines if the elements of this Iterator are equal to those of another. Read more

fn ne<I>(self, other: I) -> bool where
    I: IntoIterator,
    Self::Item: PartialEq<<I as IntoIterator>::Item>, 
1.5.0[src]

Determines if the elements of this Iterator are unequal to those of another. Read more

fn lt<I>(self, other: I) -> bool where
    I: IntoIterator,
    Self::Item: PartialOrd<<I as IntoIterator>::Item>, 
1.5.0[src]

Determines if the elements of this Iterator are lexicographically less than those of another. Read more

fn le<I>(self, other: I) -> bool where
    I: IntoIterator,
    Self::Item: PartialOrd<<I as IntoIterator>::Item>, 
1.5.0[src]

Determines if the elements of this Iterator are lexicographically less or equal to those of another. Read more

fn gt<I>(self, other: I) -> bool where
    I: IntoIterator,
    Self::Item: PartialOrd<<I as IntoIterator>::Item>, 
1.5.0[src]

Determines if the elements of this Iterator are lexicographically greater than those of another. Read more

fn ge<I>(self, other: I) -> bool where
    I: IntoIterator,
    Self::Item: PartialOrd<<I as IntoIterator>::Item>, 
1.5.0[src]

Determines if the elements of this Iterator are lexicographically greater than or equal to those of another. Read more

fn is_sorted(self) -> bool where
    Self::Item: PartialOrd<Self::Item>, 
[src]

🔬 This is a nightly-only experimental API. (is_sorted #53485)

new API

Checks if the elements of this iterator are sorted. Read more

fn is_sorted_by<F>(self, compare: F) -> bool where
    F: FnMut(&Self::Item, &Self::Item) -> Option<Ordering>, 
[src]

🔬 This is a nightly-only experimental API. (is_sorted #53485)

new API

Checks if the elements of this iterator are sorted using the given comparator function. Read more

fn is_sorted_by_key<F, K>(self, f: F) -> bool where
    F: FnMut(Self::Item) -> K,
    K: PartialOrd<K>, 
[src]

🔬 This is a nightly-only experimental API. (is_sorted #53485)

new API

Checks if the elements of this iterator are sorted using the given key extraction function. Read more

impl<'_, T> Deref for &'_ T where
    T: ?Sized
[src]

type Target = T

The resulting type after dereferencing.

impl<'_, T> Deref for &'_ mut T where
    T: ?Sized
[src]

type Target = T

The resulting type after dereferencing.

impl<'_, T> LowerHex for &'_ T where
    T: LowerHex + ?Sized
[src]

impl<'_, T> LowerHex for &'_ mut T where
    T: LowerHex + ?Sized
[src]

impl<'_, T> LowerExp for &'_ mut T where
    T: LowerExp + ?Sized
[src]

impl<'_, T> LowerExp for &'_ T where
    T: LowerExp + ?Sized
[src]

impl<'_, T> Display for &'_ T where
    T: Display + ?Sized
[src]

impl<'_, T> Display for &'_ mut T where
    T: Display + ?Sized
[src]

impl<'_, G> Generator for &'_ mut G where
    G: Unpin + Generator + ?Sized
[src]

type Yield = <G as Generator>::Yield

🔬 This is a nightly-only experimental API. (generator_trait #43122)

The type of value this generator yields. Read more

type Return = <G as Generator>::Return

🔬 This is a nightly-only experimental API. (generator_trait #43122)

The type of value this generator returns. Read more

impl<'_, A, F> FnOnce<A> for &'_ mut F where
    F: FnMut<A> + ?Sized
[src]

type Output = <F as FnOnce<A>>::Output

The returned type after the call operator is used.

impl<'_, A, F> FnOnce<A> for &'_ F where
    F: Fn<A> + ?Sized
[src]

type Output = <F as FnOnce<A>>::Output

The returned type after the call operator is used.

impl<'_, A, F> Fn<A> for &'_ F where
    F: Fn<A> + ?Sized
[src]

impl<'_, '_, A, B> PartialEq<&'_ mut B> for &'_ A where
    A: PartialEq<B> + ?Sized,
    B: ?Sized
[src]

impl<'_, '_, A, B> PartialEq<&'_ B> for &'_ mut A where
    A: PartialEq<B> + ?Sized,
    B: ?Sized
[src]

impl<'_, '_, A, B> PartialEq<&'_ mut B> for &'_ mut A where
    A: PartialEq<B> + ?Sized,
    B: ?Sized
[src]

impl<'_, '_, A, B> PartialEq<&'_ B> for &'_ A where
    A: PartialEq<B> + ?Sized,
    B: ?Sized
[src]

impl<'_, I> TrustedLen for &'_ mut I where
    I: TrustedLen + ?Sized
[src]

impl<'_, F> Future for &'_ mut F where
    F: Unpin + Future + ?Sized
1.36.0[src]

type Output = <F as Future>::Output

The type of value produced on completion.

impl<'_, '_, A, B> PartialOrd<&'_ B> for &'_ A where
    A: PartialOrd<B> + ?Sized,
    B: ?Sized
[src]

impl<'_, '_, A, B> PartialOrd<&'_ mut B> for &'_ mut A where
    A: PartialOrd<B> + ?Sized,
    B: ?Sized
[src]

impl<'a, T, U> CoerceUnsized<&'a mut U> for &'a mut T where
    T: Unsize<U> + ?Sized,
    U: ?Sized
[src]

impl<'a, T, U> CoerceUnsized<*const U> for &'a mut T where
    T: Unsize<U> + ?Sized,
    U: ?Sized
[src]

impl<'a, T, U> CoerceUnsized<*mut U> for &'a mut T where
    T: Unsize<U> + ?Sized,
    U: ?Sized
[src]

impl<'a, 'b, T, U> CoerceUnsized<&'a U> for &'b mut T where
    'b: 'a,
    T: Unsize<U> + ?Sized,
    U: ?Sized
[src]

impl<'a, 'b, T, U> CoerceUnsized<&'a U> for &'b T where
    'b: 'a,
    T: Unsize<U> + ?Sized,
    U: ?Sized
[src]

impl<'a, T, U> CoerceUnsized<*const U> for &'a T where
    T: Unsize<U> + ?Sized,
    U: ?Sized
[src]

impl<'_, T> Debug for &'_ mut T where
    T: Debug + ?Sized
[src]

impl<'_, T> Debug for &'_ T where
    T: Debug + ?Sized
[src]

impl<'_, T> Send for &'_ mut T where
    T: Send + ?Sized
[src]

impl<'_, T> Send for &'_ T where
    T: Sync + ?Sized
[src]

impl<'a, T, U> DispatchFromDyn<&'a mut U> for &'a mut T where
    T: Unsize<U> + ?Sized,
    U: ?Sized
[src]

impl<'a, T, U> DispatchFromDyn<&'a U> for &'a T where
    T: Unsize<U> + ?Sized,
    U: ?Sized
[src]

impl<'_, T> UpperExp for &'_ mut T where
    T: UpperExp + ?Sized
[src]

impl<'_, T> UpperExp for &'_ T where
    T: UpperExp + ?Sized
[src]

impl<'_, T> BorrowMut<T> for &'_ mut T where
    T: ?Sized
[src]

impl<'_, T> UpperHex for &'_ T where
    T: UpperHex + ?Sized
[src]

impl<'_, T> UpperHex for &'_ mut T where
    T: UpperHex + ?Sized
[src]

impl<'a, T> Unpin for &'a T where
    T: 'a + ?Sized
1.33.0[src]

impl<'a, T> Unpin for &'a mut T where
    T: 'a + ?Sized
1.33.0[src]

impl<'_, A> Ord for &'_ mut A where
    A: Ord + ?Sized
[src]

fn max(self, other: Self) -> Self1.21.0[src]

Compares and returns the maximum of two values. Read more

fn min(self, other: Self) -> Self1.21.0[src]

Compares and returns the minimum of two values. Read more

fn clamp(self, min: Self, max: Self) -> Self[src]

🔬 This is a nightly-only experimental API. (clamp #44095)

Restrict a value to a certain interval. Read more

impl<'_, A> Ord for &'_ A where
    A: Ord + ?Sized
[src]

fn max(self, other: Self) -> Self1.21.0[src]

Compares and returns the maximum of two values. Read more

fn min(self, other: Self) -> Self1.21.0[src]

Compares and returns the minimum of two values. Read more

fn clamp(self, min: Self, max: Self) -> Self[src]

🔬 This is a nightly-only experimental API. (clamp #44095)

Restrict a value to a certain interval. Read more

impl<'_, T, U> AsMut<U> for &'_ mut T where
    T: AsMut<U> + ?Sized,
    U: ?Sized
[src]

impl<'_, R: Read + ?Sized> Read for &'_ mut R[src]

Important traits for &'_ mut I
fn by_ref(&mut self) -> &mut Self where
    Self: Sized
[src]

Creates a "by reference" adaptor for this instance of Read. Read more

Important traits for Bytes<R>
fn bytes(self) -> Bytes<Self> where
    Self: Sized
[src]

Transforms this Read instance to an [Iterator] over its bytes. Read more

Important traits for Chain<T, U>
fn chain<R: Read>(self, next: R) -> Chain<Self, R> where
    Self: Sized
[src]

Creates an adaptor which will chain this stream with another. Read more

Important traits for Take<T>
fn take(self, limit: u64) -> Take<Self> where
    Self: Sized
[src]

Creates an adaptor which will read at most limit bytes from it. Read more

impl<'_, W: Write + ?Sized> Write for &'_ mut W[src]

Important traits for &'_ mut I
fn by_ref(&mut self) -> &mut Self where
    Self: Sized
[src]

Creates a "by reference" adaptor for this instance of Write. Read more

impl<'_, S: Seek + ?Sized> Seek for &'_ mut S[src]

fn stream_len(&mut self) -> Result<u64>[src]

🔬 This is a nightly-only experimental API. (seek_convenience #59359)

Returns the length of this stream (in bytes). Read more

fn stream_position(&mut self) -> Result<u64>[src]

🔬 This is a nightly-only experimental API. (seek_convenience #59359)

Returns the current seek position from the start of the stream. Read more

impl<'_, B: BufRead + ?Sized> BufRead for &'_ mut B[src]

Important traits for Split<B>
fn split(self, byte: u8) -> Split<Self> where
    Self: Sized
[src]

Returns an iterator over the contents of this reader split on the byte byte. Read more

Important traits for Lines<B>
fn lines(self) -> Lines<Self> where
    Self: Sized
[src]

Returns an iterator over the lines of this reader. Read more

impl<'_, T: ToSocketAddrs + ?Sized> ToSocketAddrs for &'_ T[src]

type Iter = T::Iter

Returned iterator over socket addresses which this type may correspond to. Read more

impl<'_, T: ?Sized> !UnwindSafe for &'_ mut T1.9.0[src]

impl<'_, T: RefUnwindSafe + ?Sized> UnwindSafe for &'_ T1.9.0[src]