[−][src]Enum either::Either
The enum Either
with variants Left
and Right
is a general purpose
sum type with two cases.
The Either
type is symmetric and treats its variants the same way, without
preference.
(For representing success or error, use the regular Result
enum instead.)
Variants
Left(L)
A value of type L
.
Right(R)
A value of type R
.
Methods
impl<L, R> Either<L, R>
[src]
[−]
impl<L, R> Either<L, R>
pub fn is_left(&self) -> bool
[src]
[−]
pub fn is_left(&self) -> bool
Return true if the value is the Left
variant.
use either::*; let values = [Left(1), Right("the right value")]; assert_eq!(values[0].is_left(), true); assert_eq!(values[1].is_left(), false);
pub fn is_right(&self) -> bool
[src]
[−]
pub fn is_right(&self) -> bool
Return true if the value is the Right
variant.
use either::*; let values = [Left(1), Right("the right value")]; assert_eq!(values[0].is_right(), false); assert_eq!(values[1].is_right(), true);
pub fn left(self) -> Option<L>
[src]
[−]
pub fn left(self) -> Option<L>
Convert the left side of Either<L, R>
to an Option<L>
.
use either::*; let left: Either<_, ()> = Left("some value"); assert_eq!(left.left(), Some("some value")); let right: Either<(), _> = Right(321); assert_eq!(right.left(), None);
pub fn right(self) -> Option<R>
[src]
[−]
pub fn right(self) -> Option<R>
Convert the right side of Either<L, R>
to an Option<R>
.
use either::*; let left: Either<_, ()> = Left("some value"); assert_eq!(left.right(), None); let right: Either<(), _> = Right(321); assert_eq!(right.right(), Some(321));
ⓘImportant traits for Either<L, R>pub fn as_ref(&self) -> Either<&L, &R>
[src]
[−]
pub fn as_ref(&self) -> Either<&L, &R>
Convert &Either<L, R>
to Either<&L, &R>
.
use either::*; let left: Either<_, ()> = Left("some value"); assert_eq!(left.as_ref(), Left(&"some value")); let right: Either<(), _> = Right("some value"); assert_eq!(right.as_ref(), Right(&"some value"));
ⓘImportant traits for Either<L, R>pub fn as_mut(&mut self) -> Either<&mut L, &mut R>
[src]
[−]
pub fn as_mut(&mut self) -> Either<&mut L, &mut R>
Convert &mut Either<L, R>
to Either<&mut L, &mut R>
.
use either::*; fn mutate_left(value: &mut Either<u32, u32>) { if let Some(l) = value.as_mut().left() { *l = 999; } } let mut left = Left(123); let mut right = Right(123); mutate_left(&mut left); mutate_left(&mut right); assert_eq!(left, Left(999)); assert_eq!(right, Right(123));
ⓘImportant traits for Either<L, R>pub fn flip(self) -> Either<R, L>
[src]
[−]
pub fn flip(self) -> Either<R, L>
Convert Either<L, R>
to Either<R, L>
.
use either::*; let left: Either<_, ()> = Left(123); assert_eq!(left.flip(), Right(123)); let right: Either<(), _> = Right("some value"); assert_eq!(right.flip(), Left("some value"));
ⓘImportant traits for Either<L, R>pub fn map_left<F, M>(self, f: F) -> Either<M, R> where
F: FnOnce(L) -> M,
[src]
[−]
pub fn map_left<F, M>(self, f: F) -> Either<M, R> where
F: FnOnce(L) -> M,
Apply the function f
on the value in the Left
variant if it is present rewrapping the
result in Left
.
use either::*; let left: Either<_, u32> = Left(123); assert_eq!(left.map_left(|x| x * 2), Left(246)); let right: Either<u32, _> = Right(123); assert_eq!(right.map_left(|x| x * 2), Right(123));
ⓘImportant traits for Either<L, R>pub fn map_right<F, S>(self, f: F) -> Either<L, S> where
F: FnOnce(R) -> S,
[src]
[−]
pub fn map_right<F, S>(self, f: F) -> Either<L, S> where
F: FnOnce(R) -> S,
Apply the function f
on the value in the Right
variant if it is present rewrapping the
result in Right
.
use either::*; let left: Either<_, u32> = Left(123); assert_eq!(left.map_right(|x| x * 2), Left(123)); let right: Either<u32, _> = Right(123); assert_eq!(right.map_right(|x| x * 2), Right(246));
pub fn either<F, G, T>(self, f: F, g: G) -> T where
F: FnOnce(L) -> T,
G: FnOnce(R) -> T,
[src]
[−]
pub fn either<F, G, T>(self, f: F, g: G) -> T where
F: FnOnce(L) -> T,
G: FnOnce(R) -> T,
Apply one of two functions depending on contents, unifying their result. If the value is
Left(L)
then the first function f
is applied; if it is Right(R)
then the second
function g
is applied.
use either::*; fn square(n: u32) -> i32 { (n * n) as i32 } fn negate(n: i32) -> i32 { -n } let left: Either<u32, i32> = Left(4); assert_eq!(left.either(square, negate), 16); let right: Either<u32, i32> = Right(-4); assert_eq!(right.either(square, negate), 4);
pub fn either_with<Ctx, F, G, T>(self, ctx: Ctx, f: F, g: G) -> T where
F: FnOnce(Ctx, L) -> T,
G: FnOnce(Ctx, R) -> T,
[src]
[−]
pub fn either_with<Ctx, F, G, T>(self, ctx: Ctx, f: F, g: G) -> T where
F: FnOnce(Ctx, L) -> T,
G: FnOnce(Ctx, R) -> T,
Like either
, but provide some context to whichever of the
functions ends up being called.
// In this example, the context is a mutable reference use either::*; let mut result = Vec::new(); let values = vec![Left(2), Right(2.7)]; for value in values { value.either_with(&mut result, |ctx, integer| ctx.push(integer), |ctx, real| ctx.push(f64::round(real) as i32)); } assert_eq!(result, vec![2, 3]);
ⓘImportant traits for Either<L, R>pub fn left_and_then<F, S>(self, f: F) -> Either<S, R> where
F: FnOnce(L) -> Either<S, R>,
[src]
[−]
pub fn left_and_then<F, S>(self, f: F) -> Either<S, R> where
F: FnOnce(L) -> Either<S, R>,
Apply the function f
on the value in the Left
variant if it is present.
use either::*; let left: Either<_, u32> = Left(123); assert_eq!(left.left_and_then::<_,()>(|x| Right(x * 2)), Right(246)); let right: Either<u32, _> = Right(123); assert_eq!(right.left_and_then(|x| Right::<(), _>(x * 2)), Right(123));
ⓘImportant traits for Either<L, R>pub fn right_and_then<F, S>(self, f: F) -> Either<L, S> where
F: FnOnce(R) -> Either<L, S>,
[src]
[−]
pub fn right_and_then<F, S>(self, f: F) -> Either<L, S> where
F: FnOnce(R) -> Either<L, S>,
Apply the function f
on the value in the Right
variant if it is present.
use either::*; let left: Either<_, u32> = Left(123); assert_eq!(left.right_and_then(|x| Right(x * 2)), Left(123)); let right: Either<u32, _> = Right(123); assert_eq!(right.right_and_then(|x| Right(x * 2)), Right(246));
ⓘImportant traits for Either<L, R>pub fn into_iter(self) -> Either<L::IntoIter, R::IntoIter> where
L: IntoIterator,
R: IntoIterator<Item = L::Item>,
[src]
[−]
pub fn into_iter(self) -> Either<L::IntoIter, R::IntoIter> where
L: IntoIterator,
R: IntoIterator<Item = L::Item>,
Convert the inner value to an iterator.
use either::*; let left: Either<_, Vec<u32>> = Left(vec![1, 2, 3, 4, 5]); let mut right: Either<Vec<u32>, _> = Right(vec![]); right.extend(left.into_iter()); assert_eq!(right, Right(vec![1, 2, 3, 4, 5]));
Trait Implementations
impl<L: Copy, R: Copy> Copy for Either<L, R>
[src]
impl<L: Copy, R: Copy> Copy for Either<L, R>
impl<L: Clone, R: Clone> Clone for Either<L, R>
[src]
[+]
impl<L: Clone, R: Clone> Clone for Either<L, R>
impl<L: PartialEq, R: PartialEq> PartialEq for Either<L, R>
[src]
[+]
impl<L: PartialEq, R: PartialEq> PartialEq for Either<L, R>
impl<L: Eq, R: Eq> Eq for Either<L, R>
[src]
impl<L: Eq, R: Eq> Eq for Either<L, R>
impl<L: PartialOrd, R: PartialOrd> PartialOrd for Either<L, R>
[src]
[+]
impl<L: PartialOrd, R: PartialOrd> PartialOrd for Either<L, R>
impl<L: Ord, R: Ord> Ord for Either<L, R>
[src]
[+]
impl<L: Ord, R: Ord> Ord for Either<L, R>
impl<L: Hash, R: Hash> Hash for Either<L, R>
[src]
[+]
impl<L: Hash, R: Hash> Hash for Either<L, R>
impl<L: Debug, R: Debug> Debug for Either<L, R>
[src]
[+]
impl<L: Debug, R: Debug> Debug for Either<L, R>
impl<L, R> From<Result<R, L>> for Either<L, R>
[src]
[+]
impl<L, R> From<Result<R, L>> for Either<L, R>
impl<L, R> Into<Result<R, L>> for Either<L, R>
[src]
[+]
impl<L, R> Into<Result<R, L>> for Either<L, R>
impl<L, R, A> Extend<A> for Either<L, R> where
L: Extend<A>,
R: Extend<A>,
[src]
[+]
impl<L, R, A> Extend<A> for Either<L, R> where
L: Extend<A>,
R: Extend<A>,
impl<L, R> Iterator for Either<L, R> where
L: Iterator,
R: Iterator<Item = L::Item>,
[src]
[+]
impl<L, R> Iterator for Either<L, R> where
L: Iterator,
R: Iterator<Item = L::Item>,
type Item = L::Item
fn next(&mut self) -> Option<Self::Item>
[src]
[−]
fn next(&mut self) -> Option<Self::Item>
fn size_hint(&self) -> (usize, Option<usize>)
[src]
[−]
fn size_hint(&self) -> (usize, Option<usize>)
fn fold<Acc, G>(self, init: Acc, f: G) -> Acc where
G: FnMut(Acc, Self::Item) -> Acc,
[src]
[−]
fn fold<Acc, G>(self, init: Acc, f: G) -> Acc where
G: FnMut(Acc, Self::Item) -> Acc,
fn count(self) -> usize
[src]
[−]
fn count(self) -> usize
fn last(self) -> Option<Self::Item>
[src]
[−]
fn last(self) -> Option<Self::Item>
fn nth(&mut self, n: usize) -> Option<Self::Item>
[src]
[−]
fn nth(&mut self, n: usize) -> Option<Self::Item>
fn collect<B>(self) -> B where
B: FromIterator<Self::Item>,
[src]
[−]
fn collect<B>(self) -> B where
B: FromIterator<Self::Item>,
fn all<F>(&mut self, f: F) -> bool where
F: FnMut(Self::Item) -> bool,
[src]
[−]
fn all<F>(&mut self, f: F) -> bool where
F: FnMut(Self::Item) -> bool,
fn step_by(self, step: usize) -> StepBy<Self>
1.28.0[src]
[−]
fn step_by(self, step: usize) -> StepBy<Self>
fn chain<U>(self, other: U) -> Chain<Self, <U as IntoIterator>::IntoIter> where
U: IntoIterator<Item = Self::Item>,
1.0.0[src]
[−]
fn chain<U>(self, other: U) -> Chain<Self, <U as IntoIterator>::IntoIter> where
U: IntoIterator<Item = Self::Item>,
fn zip<U>(self, other: U) -> Zip<Self, <U as IntoIterator>::IntoIter> where
U: IntoIterator,
1.0.0[src]
[−]
fn zip<U>(self, other: U) -> Zip<Self, <U as IntoIterator>::IntoIter> where
U: IntoIterator,
fn map<B, F>(self, f: F) -> Map<Self, F> where
F: FnMut(Self::Item) -> B,
1.0.0[src]
[−]
fn map<B, F>(self, f: F) -> Map<Self, F> where
F: FnMut(Self::Item) -> B,
fn for_each<F>(self, f: F) where
F: FnMut(Self::Item),
1.21.0[src]
[−]
fn for_each<F>(self, f: F) where
F: FnMut(Self::Item),
fn filter<P>(self, predicate: P) -> Filter<Self, P> where
P: FnMut(&Self::Item) -> bool,
1.0.0[src]
[−]
fn filter<P>(self, predicate: P) -> Filter<Self, P> where
P: FnMut(&Self::Item) -> bool,
fn filter_map<B, F>(self, f: F) -> FilterMap<Self, F> where
F: FnMut(Self::Item) -> Option<B>,
1.0.0[src]
[−]
fn filter_map<B, F>(self, f: F) -> FilterMap<Self, F> where
F: FnMut(Self::Item) -> Option<B>,
fn enumerate(self) -> Enumerate<Self>
1.0.0[src]
[−]
fn enumerate(self) -> Enumerate<Self>
fn peekable(self) -> Peekable<Self>
1.0.0[src]
[−]
fn peekable(self) -> Peekable<Self>
fn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P> where
P: FnMut(&Self::Item) -> bool,
1.0.0[src]
[−]
fn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P> where
P: FnMut(&Self::Item) -> bool,
fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P> where
P: FnMut(&Self::Item) -> bool,
1.0.0[src]
[−]
fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P> where
P: FnMut(&Self::Item) -> bool,
fn skip(self, n: usize) -> Skip<Self>
1.0.0[src]
[−]
fn skip(self, n: usize) -> Skip<Self>
fn take(self, n: usize) -> Take<Self>
1.0.0[src]
[−]
fn take(self, n: usize) -> Take<Self>
fn scan<St, B, F>(self, initial_state: St, f: F) -> Scan<Self, St, F> where
F: FnMut(&mut St, Self::Item) -> Option<B>,
1.0.0[src]
[−]
fn scan<St, B, F>(self, initial_state: St, f: F) -> Scan<Self, St, F> where
F: FnMut(&mut St, Self::Item) -> Option<B>,
fn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F> where
F: FnMut(Self::Item) -> U,
U: IntoIterator,
1.0.0[src]
[−]
fn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F> where
F: FnMut(Self::Item) -> U,
U: IntoIterator,
fn flatten(self) -> Flatten<Self> where
Self::Item: IntoIterator,
1.29.0[src]
[−]
fn flatten(self) -> Flatten<Self> where
Self::Item: IntoIterator,
fn fuse(self) -> Fuse<Self>
1.0.0[src]
[−]
fn fuse(self) -> Fuse<Self>
fn inspect<F>(self, f: F) -> Inspect<Self, F> where
F: FnMut(&Self::Item),
1.0.0[src]
[−]
fn inspect<F>(self, f: F) -> Inspect<Self, F> where
F: FnMut(&Self::Item),
fn by_ref(&mut self) -> &mut Self
1.0.0[src]
[−]
fn by_ref(&mut self) -> &mut Self
fn partition<B, F>(self, f: F) -> (B, B) where
B: Default + Extend<Self::Item>,
F: FnMut(&Self::Item) -> bool,
1.0.0[src]
[−]
fn partition<B, F>(self, f: F) -> (B, B) where
B: Default + Extend<Self::Item>,
F: FnMut(&Self::Item) -> bool,
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]
[−]
fn try_fold<B, F, R>(&mut self, init: B, f: F) -> R where
F: FnMut(B, Self::Item) -> R,
R: Try<Ok = B>,
fn try_for_each<F, R>(&mut self, f: F) -> R where
F: FnMut(Self::Item) -> R,
R: Try<Ok = ()>,
1.27.0[src]
[−]
fn try_for_each<F, R>(&mut self, f: F) -> R where
F: FnMut(Self::Item) -> R,
R: Try<Ok = ()>,
fn any<F>(&mut self, f: F) -> bool where
F: FnMut(Self::Item) -> bool,
1.0.0[src]
[−]
fn any<F>(&mut self, f: F) -> bool where
F: FnMut(Self::Item) -> bool,
fn find<P>(&mut self, predicate: P) -> Option<Self::Item> where
P: FnMut(&Self::Item) -> bool,
1.0.0[src]
[−]
fn find<P>(&mut self, predicate: P) -> Option<Self::Item> where
P: FnMut(&Self::Item) -> bool,
fn find_map<B, F>(&mut self, f: F) -> Option<B> where
F: FnMut(Self::Item) -> Option<B>,
1.30.0[src]
[−]
fn find_map<B, F>(&mut self, f: F) -> Option<B> where
F: FnMut(Self::Item) -> Option<B>,
fn position<P>(&mut self, predicate: P) -> Option<usize> where
P: FnMut(Self::Item) -> bool,
1.0.0[src]
[−]
fn position<P>(&mut self, predicate: P) -> Option<usize> where
P: FnMut(Self::Item) -> bool,
fn rposition<P>(&mut self, predicate: P) -> Option<usize> where
P: FnMut(Self::Item) -> bool,
Self: ExactSizeIterator + DoubleEndedIterator,
1.0.0[src]
[−]
fn rposition<P>(&mut self, predicate: P) -> Option<usize> where
P: FnMut(Self::Item) -> bool,
Self: ExactSizeIterator + DoubleEndedIterator,
fn max(self) -> Option<Self::Item> where
Self::Item: Ord,
1.0.0[src]
[−]
fn max(self) -> Option<Self::Item> where
Self::Item: Ord,
fn min(self) -> Option<Self::Item> where
Self::Item: Ord,
1.0.0[src]
[−]
fn min(self) -> Option<Self::Item> where
Self::Item: Ord,
fn max_by_key<B, F>(self, f: F) -> Option<Self::Item> where
B: Ord,
F: FnMut(&Self::Item) -> B,
1.6.0[src]
[−]
fn max_by_key<B, F>(self, f: F) -> Option<Self::Item> where
B: Ord,
F: FnMut(&Self::Item) -> B,
fn max_by<F>(self, compare: F) -> Option<Self::Item> where
F: FnMut(&Self::Item, &Self::Item) -> Ordering,
1.15.0[src]
[−]
fn max_by<F>(self, compare: F) -> Option<Self::Item> where
F: FnMut(&Self::Item, &Self::Item) -> Ordering,
fn min_by_key<B, F>(self, f: F) -> Option<Self::Item> where
B: Ord,
F: FnMut(&Self::Item) -> B,
1.6.0[src]
[−]
fn min_by_key<B, F>(self, f: F) -> Option<Self::Item> where
B: Ord,
F: FnMut(&Self::Item) -> B,
fn min_by<F>(self, compare: F) -> Option<Self::Item> where
F: FnMut(&Self::Item, &Self::Item) -> Ordering,
1.15.0[src]
[−]
fn min_by<F>(self, compare: F) -> Option<Self::Item> where
F: FnMut(&Self::Item, &Self::Item) -> Ordering,
fn rev(self) -> Rev<Self> where
Self: DoubleEndedIterator,
1.0.0[src]
[−]
fn rev(self) -> Rev<Self> where
Self: DoubleEndedIterator,
fn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB) where
FromA: Default + Extend<A>,
FromB: Default + Extend<B>,
Self: Iterator<Item = (A, B)>,
1.0.0[src]
[−]
fn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB) where
FromA: Default + Extend<A>,
FromB: Default + Extend<B>,
Self: Iterator<Item = (A, B)>,
fn cloned<'a, T>(self) -> Cloned<Self> where
Self: Iterator<Item = &'a T>,
T: 'a + Clone,
1.0.0[src]
[−]
fn cloned<'a, T>(self) -> Cloned<Self> where
Self: Iterator<Item = &'a T>,
T: 'a + Clone,
fn cycle(self) -> Cycle<Self> where
Self: Clone,
1.0.0[src]
[−]
fn cycle(self) -> Cycle<Self> where
Self: Clone,
fn sum<S>(self) -> S where
S: Sum<Self::Item>,
1.11.0[src]
[−]
fn sum<S>(self) -> S where
S: Sum<Self::Item>,
fn product<P>(self) -> P where
P: Product<Self::Item>,
1.11.0[src]
[−]
fn product<P>(self) -> P where
P: Product<Self::Item>,
fn cmp<I>(self, other: I) -> Ordering where
I: IntoIterator<Item = Self::Item>,
Self::Item: Ord,
1.5.0[src]
[−]
fn cmp<I>(self, other: I) -> Ordering where
I: IntoIterator<Item = Self::Item>,
Self::Item: Ord,
fn partial_cmp<I>(self, other: I) -> Option<Ordering> where
I: IntoIterator,
Self::Item: PartialOrd<<I as IntoIterator>::Item>,
1.5.0[src]
[−]
fn partial_cmp<I>(self, other: I) -> Option<Ordering> where
I: IntoIterator,
Self::Item: PartialOrd<<I as IntoIterator>::Item>,
fn eq<I>(self, other: I) -> bool where
I: IntoIterator,
Self::Item: PartialEq<<I as IntoIterator>::Item>,
1.5.0[src]
[−]
fn eq<I>(self, other: I) -> bool where
I: IntoIterator,
Self::Item: PartialEq<<I as IntoIterator>::Item>,
fn ne<I>(self, other: I) -> bool where
I: IntoIterator,
Self::Item: PartialEq<<I as IntoIterator>::Item>,
1.5.0[src]
[−]
fn ne<I>(self, other: I) -> bool where
I: IntoIterator,
Self::Item: PartialEq<<I as IntoIterator>::Item>,
fn lt<I>(self, other: I) -> bool where
I: IntoIterator,
Self::Item: PartialOrd<<I as IntoIterator>::Item>,
1.5.0[src]
[−]
fn lt<I>(self, other: I) -> bool where
I: IntoIterator,
Self::Item: PartialOrd<<I as IntoIterator>::Item>,
fn le<I>(self, other: I) -> bool where
I: IntoIterator,
Self::Item: PartialOrd<<I as IntoIterator>::Item>,
1.5.0[src]
[−]
fn le<I>(self, other: I) -> bool where
I: IntoIterator,
Self::Item: PartialOrd<<I as IntoIterator>::Item>,
fn gt<I>(self, other: I) -> bool where
I: IntoIterator,
Self::Item: PartialOrd<<I as IntoIterator>::Item>,
1.5.0[src]
[−]
fn gt<I>(self, other: I) -> bool where
I: IntoIterator,
Self::Item: PartialOrd<<I as IntoIterator>::Item>,
fn ge<I>(self, other: I) -> bool where
I: IntoIterator,
Self::Item: PartialOrd<<I as IntoIterator>::Item>,
1.5.0[src]
[−]
fn ge<I>(self, other: I) -> bool where
I: IntoIterator,
Self::Item: PartialOrd<<I as IntoIterator>::Item>,
impl<L, R> DoubleEndedIterator for Either<L, R> where
L: DoubleEndedIterator,
R: DoubleEndedIterator<Item = L::Item>,
[src]
[+]
impl<L, R> DoubleEndedIterator for Either<L, R> where
L: DoubleEndedIterator,
R: DoubleEndedIterator<Item = L::Item>,
impl<L, R> ExactSizeIterator for Either<L, R> where
L: ExactSizeIterator,
R: ExactSizeIterator<Item = L::Item>,
[src]
[+]
impl<L, R> ExactSizeIterator for Either<L, R> where
L: ExactSizeIterator,
R: ExactSizeIterator<Item = L::Item>,
impl<L, R> Read for Either<L, R> where
L: Read,
R: Read,
[src]
[+]
impl<L, R> Read for Either<L, R> where
L: Read,
R: Read,
fn read(&mut self, buf: &mut [u8]) -> Result<usize>
[src]
[−]
fn read(&mut self, buf: &mut [u8]) -> Result<usize>
fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize>
[src]
[−]
fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize>
unsafe fn initializer(&self) -> Initializer
[src]
[−]
unsafe fn initializer(&self) -> Initializer
fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
1.0.0[src]
[−]
fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
1.6.0[src]
[−]
fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
fn by_ref(&mut self) -> &mut Self
1.0.0[src]
[−]
fn by_ref(&mut self) -> &mut Self
fn bytes(self) -> Bytes<Self>
1.0.0[src]
[−]
fn bytes(self) -> Bytes<Self>
fn chain<R>(self, next: R) -> Chain<Self, R> where
R: Read,
1.0.0[src]
[−]
fn chain<R>(self, next: R) -> Chain<Self, R> where
R: Read,
fn take(self, limit: u64) -> Take<Self>
1.0.0[src]
[−]
fn take(self, limit: u64) -> Take<Self>
impl<L, R> BufRead for Either<L, R> where
L: BufRead,
R: BufRead,
[src]
[+]
impl<L, R> BufRead for Either<L, R> where
L: BufRead,
R: BufRead,
fn fill_buf(&mut self) -> Result<&[u8]>
[src]
[−]
fn fill_buf(&mut self) -> Result<&[u8]>
fn consume(&mut self, amt: usize)
[src]
[−]
fn consume(&mut self, amt: usize)
fn read_until(&mut self, byte: u8, buf: &mut Vec<u8>) -> Result<usize, Error>
1.0.0[src]
[−]
fn read_until(&mut self, byte: u8, buf: &mut Vec<u8>) -> Result<usize, Error>
fn read_line(&mut self, buf: &mut String) -> Result<usize, Error>
1.0.0[src]
[−]
fn read_line(&mut self, buf: &mut String) -> Result<usize, Error>
fn split(self, byte: u8) -> Split<Self>
1.0.0[src]
[−]
fn split(self, byte: u8) -> Split<Self>
fn lines(self) -> Lines<Self>
1.0.0[src]
[−]
fn lines(self) -> Lines<Self>
impl<L, R> Write for Either<L, R> where
L: Write,
R: Write,
[src]
[+]
impl<L, R> Write for Either<L, R> where
L: Write,
R: Write,
fn write(&mut self, buf: &[u8]) -> Result<usize>
[src]
[−]
fn write(&mut self, buf: &[u8]) -> Result<usize>
fn flush(&mut self) -> Result<()>
[src]
[−]
fn flush(&mut self) -> Result<()>
fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
1.0.0[src]
[−]
fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
fn write_fmt(&mut self, fmt: Arguments) -> Result<(), Error>
1.0.0[src]
[−]
fn write_fmt(&mut self, fmt: Arguments) -> Result<(), Error>
fn by_ref(&mut self) -> &mut Self
1.0.0[src]
[−]
fn by_ref(&mut self) -> &mut Self
impl<L, R, Target> AsRef<Target> for Either<L, R> where
L: AsRef<Target>,
R: AsRef<Target>,
[src]
[+]
impl<L, R, Target> AsRef<Target> for Either<L, R> where
L: AsRef<Target>,
R: AsRef<Target>,
impl<L, R, Target> AsMut<Target> for Either<L, R> where
L: AsMut<Target>,
R: AsMut<Target>,
[src]
[+]
impl<L, R, Target> AsMut<Target> for Either<L, R> where
L: AsMut<Target>,
R: AsMut<Target>,
impl<L, R> Deref for Either<L, R> where
L: Deref,
R: Deref<Target = L::Target>,
[src]
[+]
impl<L, R> Deref for Either<L, R> where
L: Deref,
R: Deref<Target = L::Target>,
impl<L, R> DerefMut for Either<L, R> where
L: DerefMut,
R: DerefMut<Target = L::Target>,
[src]
[+]
impl<L, R> DerefMut for Either<L, R> where
L: DerefMut,
R: DerefMut<Target = L::Target>,
impl<L, R> Error for Either<L, R> where
L: Error,
R: Error,
[src]
[+]
impl<L, R> Error for Either<L, R> where
L: Error,
R: Error,
impl<L, R> Display for Either<L, R> where
L: Display,
R: Display,
[src]
[+]
impl<L, R> Display for Either<L, R> where
L: Display,
R: Display,
Auto Trait Implementations
impl<L, R> Send for Either<L, R> where
L: Send,
R: Send,
impl<L, R> Send for Either<L, R> where
L: Send,
R: Send,
impl<L, R> Sync for Either<L, R> where
L: Sync,
R: Sync,
impl<L, R> Sync for Either<L, R> where
L: Sync,
R: Sync,
Blanket Implementations
impl<T> From for T
[src]
[+]
impl<T> From for T
impl<I> IntoIterator for I where
I: Iterator,
[src]
[+]
impl<I> IntoIterator for I where
I: Iterator,
impl<T, U> Into for T where
U: From<T>,
[src]
[+]
impl<T, U> Into for T where
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
[+]
impl<T> ToOwned for T where
T: Clone,
impl<T> ToString for T where
T: Display + ?Sized,
[src]
[+]
impl<T> ToString for T where
T: Display + ?Sized,
impl<T, U> TryFrom for T where
T: From<U>,
[src]
[+]
impl<T, U> TryFrom for T where
T: From<U>,
impl<T> Borrow for T where
T: ?Sized,
[src]
[+]
impl<T> Borrow for T where
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
[+]
impl<T> Any for T where
T: 'static + ?Sized,
impl<T, U> TryInto for T where
U: TryFrom<T>,
[src]
[+]
impl<T, U> TryInto for T where
U: TryFrom<T>,
impl<T> BorrowMut for T where
T: ?Sized,
[src]
[+]
impl<T> BorrowMut for T where
T: ?Sized,