[][src]Enum as_is::IsMut

pub enum IsMut<'a, T: ?Sized> where
    T: ToOwned,
    T::Owned: BorrowMut<T>, 
{ Owned(T::Owned), MutBorrowed(&'a mut T), }

Represents an owned or a mutably borrowed data.

Variants

Owned(T::Owned)

Owned data.

MutBorrowed(&'a mut T)

Mutably borrowed data.

Trait Implementations

impl<T: ?Sized, U, O, '_> Add<U> for IsMut<'_, T> where
    T: ToOwned,
    &'a T: Add<Owned<U>, Output = O> + Add<&'b U::Is, Output = O>,
    T::Owned: BorrowMut<T> + Add<Owned<U>, Output = O> + Add<&'a U::Is, Output = O>,
    U: AsIs
[src]

type Output = O

The resulting type after applying the + operator.

impl<T: ?Sized, U, '_> AddAssign<U> for IsMut<'_, T> where
    T: ToOwned + AddAssign<Owned<U>> + AddAssign<&'a U::Is>,
    T::Owned: BorrowMut<T>,
    U: AsIs
[src]

impl<T: ?Sized, '_> AsIs for IsMut<'_, T> where
    T: ToOwned,
    T::Owned: BorrowMut<T>, 
[src]

type Is = T

impl<T: ?Sized, U: ?Sized, '_> AsMut<U> for IsMut<'_, T> where
    T: ToOwned + AsMut<U>,
    T::Owned: BorrowMut<T>, 
[src]

impl<T: ?Sized, U: ?Sized, '_> AsRef<U> for IsMut<'_, T> where
    T: ToOwned + AsRef<U>,
    T::Owned: BorrowMut<T>, 
[src]

impl<T: ?Sized, '_> Binary for IsMut<'_, T> where
    T: ToOwned + Binary,
    T::Owned: BorrowMut<T>, 
[src]

impl<T: ?Sized, U, O, '_> BitAnd<U> for IsMut<'_, T> where
    T: ToOwned,
    &'a T: BitAnd<Owned<U>, Output = O> + BitAnd<&'b U::Is, Output = O>,
    T::Owned: BorrowMut<T> + BitAnd<Owned<U>, Output = O> + BitAnd<&'a U::Is, Output = O>,
    U: AsIs
[src]

type Output = O

The resulting type after applying the & operator.

impl<T: ?Sized, U, '_> BitAndAssign<U> for IsMut<'_, T> where
    T: ToOwned + BitAndAssign<Owned<U>> + BitAndAssign<&'a U::Is>,
    T::Owned: BorrowMut<T>,
    U: AsIs
[src]

impl<T: ?Sized, U, O, '_> BitOr<U> for IsMut<'_, T> where
    T: ToOwned,
    &'a T: BitOr<Owned<U>, Output = O> + BitOr<&'b U::Is, Output = O>,
    T::Owned: BorrowMut<T> + BitOr<Owned<U>, Output = O> + BitOr<&'a U::Is, Output = O>,
    U: AsIs
[src]

type Output = O

The resulting type after applying the | operator.

impl<T: ?Sized, U, '_> BitOrAssign<U> for IsMut<'_, T> where
    T: ToOwned + BitOrAssign<Owned<U>> + BitOrAssign<&'a U::Is>,
    T::Owned: BorrowMut<T>,
    U: AsIs
[src]

impl<T: ?Sized, U, O, '_> BitXor<U> for IsMut<'_, T> where
    T: ToOwned,
    &'a T: BitXor<Owned<U>, Output = O> + BitXor<&'b U::Is, Output = O>,
    T::Owned: BorrowMut<T> + BitXor<Owned<U>, Output = O> + BitXor<&'a U::Is, Output = O>,
    U: AsIs
[src]

type Output = O

The resulting type after applying the ^ operator.

impl<T: ?Sized, U, '_> BitXorAssign<U> for IsMut<'_, T> where
    T: ToOwned + BitXorAssign<Owned<U>> + BitXorAssign<&'a U::Is>,
    T::Owned: BorrowMut<T>,
    U: AsIs
[src]

impl<T: ?Sized, '_> Borrow<T> for IsMut<'_, T> where
    T: ToOwned,
    T::Owned: BorrowMut<T>, 
[src]

impl<T: ?Sized, '_> BorrowMut<T> for IsMut<'_, T> where
    T: ToOwned,
    T::Owned: BorrowMut<T>, 
[src]

impl<T: ?Sized, '_> Clone for IsMut<'_, T> where
    T: ToOwned,
    T::Owned: BorrowMut<T> + Clone
[src]

impl<'a, T: Debug + ?Sized> Debug for IsMut<'a, T> where
    T: ToOwned,
    T::Owned: BorrowMut<T>,
    T::Owned: Debug
[src]

impl<T: ?Sized, '_> Default for IsMut<'_, T> where
    T: ToOwned,
    T::Owned: BorrowMut<T> + Default
[src]

fn default() -> Self[src]

Creates an owned IsMut<'a, T> with the default value for T::Owned.

impl<T: ?Sized, '_> Deref for IsMut<'_, T> where
    T: ToOwned,
    T::Owned: BorrowMut<T>, 
[src]

type Target = T

The resulting type after dereferencing.

impl<T: ?Sized, '_> DerefMut for IsMut<'_, T> where
    T: ToOwned,
    T::Owned: BorrowMut<T>, 
[src]

impl<T: ?Sized, '_> Display for IsMut<'_, T> where
    T: ToOwned + Display,
    T::Owned: BorrowMut<T>, 
[src]

impl<T: ?Sized, U, O, '_> Div<U> for IsMut<'_, T> where
    T: ToOwned,
    &'a T: Div<Owned<U>, Output = O> + Div<&'b U::Is, Output = O>,
    T::Owned: BorrowMut<T> + Div<Owned<U>, Output = O> + Div<&'a U::Is, Output = O>,
    U: AsIs
[src]

type Output = O

The resulting type after applying the / operator.

impl<T: ?Sized, U, '_> DivAssign<U> for IsMut<'_, T> where
    T: ToOwned + DivAssign<Owned<U>> + DivAssign<&'a U::Is>,
    T::Owned: BorrowMut<T>,
    U: AsIs
[src]

impl<T: ?Sized, '_> Eq for IsMut<'_, T> where
    T: ToOwned + Eq,
    T::Owned: BorrowMut<T>, 
[src]

impl<T: ?Sized, '_> Hash for IsMut<'_, T> where
    T: ToOwned + Hash,
    T::Owned: BorrowMut<T>, 
[src]

impl<T: ?Sized, '_> LowerExp for IsMut<'_, T> where
    T: ToOwned + LowerExp,
    T::Owned: BorrowMut<T>, 
[src]

impl<T: ?Sized, '_> LowerHex for IsMut<'_, T> where
    T: ToOwned + LowerHex,
    T::Owned: BorrowMut<T>, 
[src]

impl<T: ?Sized, U, O, '_> Mul<U> for IsMut<'_, T> where
    T: ToOwned,
    &'a T: Mul<Owned<U>, Output = O> + Mul<&'b U::Is, Output = O>,
    T::Owned: BorrowMut<T> + Mul<Owned<U>, Output = O> + Mul<&'a U::Is, Output = O>,
    U: AsIs
[src]

type Output = O

The resulting type after applying the * operator.

impl<T: ?Sized, U, '_> MulAssign<U> for IsMut<'_, T> where
    T: ToOwned + MulAssign<Owned<U>> + MulAssign<&'a U::Is>,
    T::Owned: BorrowMut<T>,
    U: AsIs
[src]

impl<T: ?Sized, O, '_> Neg for IsMut<'_, T> where
    T: ToOwned,
    T::Owned: BorrowMut<T> + Neg<Output = O>,
    &'a T: Neg<Output = O>, 
[src]

type Output = O

The resulting type after applying the - operator.

impl<T: ?Sized, O, '_> Not for IsMut<'_, T> where
    T: ToOwned,
    T::Owned: BorrowMut<T> + Not<Output = O>,
    &'a T: Not<Output = O>, 
[src]

type Output = O

The resulting type after applying the ! operator.

impl<T: ?Sized, '_> Octal for IsMut<'_, T> where
    T: ToOwned + Octal,
    T::Owned: BorrowMut<T>, 
[src]

impl<T: ?Sized, '_> Ord for IsMut<'_, T> where
    T: ToOwned + Ord,
    T::Owned: BorrowMut<T>, 
[src]

impl<T: ?Sized, U: ?Sized, '_, '_> PartialEq<Is<'_, U>> for IsMut<'_, T> where
    T: ToOwned + PartialEq<U>,
    T::Owned: BorrowMut<T>,
    U: ToOwned
[src]

impl<T: ?Sized, U: ?Sized, '_, '_> PartialEq<IsCow<'_, U>> for IsMut<'_, T> where
    T: ToOwned + PartialEq<U>,
    T::Owned: BorrowMut<T>,
    U: ToOwned
[src]

impl<T: ?Sized, U: ?Sized, '_, '_> PartialEq<IsMut<'_, U>> for Is<'_, T> where
    T: ToOwned + PartialEq<U>,
    U: ToOwned,
    U::Owned: BorrowMut<U>, 
[src]

impl<T: ?Sized, U: ?Sized, '_, '_> PartialEq<IsMut<'_, U>> for IsCow<'_, T> where
    T: ToOwned + PartialEq<U>,
    U: ToOwned,
    U::Owned: BorrowMut<U>, 
[src]

impl<T: ?Sized, U: ?Sized, '_, '_> PartialEq<IsMut<'_, U>> for IsMut<'_, T> where
    T: ToOwned + PartialEq<U>,
    T::Owned: BorrowMut<T>,
    U: ToOwned,
    U::Owned: BorrowMut<U>, 
[src]

impl<T: ?Sized, U: ?Sized, '_, '_> PartialOrd<Is<'_, U>> for IsMut<'_, T> where
    T: ToOwned + PartialOrd<U>,
    T::Owned: BorrowMut<T>,
    U: ToOwned
[src]

impl<T: ?Sized, U: ?Sized, '_, '_> PartialOrd<IsCow<'_, U>> for IsMut<'_, T> where
    T: ToOwned + PartialOrd<U>,
    T::Owned: BorrowMut<T>,
    U: ToOwned
[src]

impl<T: ?Sized, U: ?Sized, '_, '_> PartialOrd<IsMut<'_, U>> for Is<'_, T> where
    T: ToOwned + PartialOrd<U>,
    U: ToOwned,
    U::Owned: BorrowMut<U>, 
[src]

impl<T: ?Sized, U: ?Sized, '_, '_> PartialOrd<IsMut<'_, U>> for IsCow<'_, T> where
    T: ToOwned + PartialOrd<U>,
    U: ToOwned,
    U::Owned: BorrowMut<U>, 
[src]

impl<T: ?Sized, U: ?Sized, '_, '_> PartialOrd<IsMut<'_, U>> for IsMut<'_, T> where
    T: ToOwned + PartialOrd<U>,
    T::Owned: BorrowMut<T>,
    U: ToOwned,
    U::Owned: BorrowMut<U>, 
[src]

impl<T: ?Sized, U, O, '_> Rem<U> for IsMut<'_, T> where
    T: ToOwned,
    &'a T: Rem<Owned<U>, Output = O> + Rem<&'b U::Is, Output = O>,
    T::Owned: BorrowMut<T> + Rem<Owned<U>, Output = O> + Rem<&'a U::Is, Output = O>,
    U: AsIs
[src]

type Output = O

The resulting type after applying the % operator.

impl<T: ?Sized, U, '_> RemAssign<U> for IsMut<'_, T> where
    T: ToOwned + RemAssign<Owned<U>> + RemAssign<&'a U::Is>,
    T::Owned: BorrowMut<T>,
    U: AsIs
[src]

impl<T: ?Sized, U, O, '_> Shl<U> for IsMut<'_, T> where
    T: ToOwned,
    &'a T: Shl<Owned<U>, Output = O> + Shl<&'b U::Is, Output = O>,
    T::Owned: BorrowMut<T> + Shl<Owned<U>, Output = O> + Shl<&'a U::Is, Output = O>,
    U: AsIs
[src]

type Output = O

The resulting type after applying the << operator.

impl<T: ?Sized, U, '_> ShlAssign<U> for IsMut<'_, T> where
    T: ToOwned + ShlAssign<Owned<U>> + ShlAssign<&'a U::Is>,
    T::Owned: BorrowMut<T>,
    U: AsIs
[src]

impl<T: ?Sized, U, O, '_> Shr<U> for IsMut<'_, T> where
    T: ToOwned,
    &'a T: Shr<Owned<U>, Output = O> + Shr<&'b U::Is, Output = O>,
    T::Owned: BorrowMut<T> + Shr<Owned<U>, Output = O> + Shr<&'a U::Is, Output = O>,
    U: AsIs
[src]

type Output = O

The resulting type after applying the >> operator.

impl<T: ?Sized, U, '_> ShrAssign<U> for IsMut<'_, T> where
    T: ToOwned + ShrAssign<Owned<U>> + ShrAssign<&'a U::Is>,
    T::Owned: BorrowMut<T>,
    U: AsIs
[src]

impl<T: ?Sized, U, O, '_> Sub<U> for IsMut<'_, T> where
    T: ToOwned,
    &'a T: Sub<Owned<U>, Output = O> + Sub<&'b U::Is, Output = O>,
    T::Owned: BorrowMut<T> + Sub<Owned<U>, Output = O> + Sub<&'a U::Is, Output = O>,
    U: AsIs
[src]

type Output = O

The resulting type after applying the - operator.

impl<T: ?Sized, U, '_> SubAssign<U> for IsMut<'_, T> where
    T: ToOwned + SubAssign<Owned<U>> + SubAssign<&'a U::Is>,
    T::Owned: BorrowMut<T>,
    U: AsIs
[src]

impl<T: ?Sized, '_> UpperExp for IsMut<'_, T> where
    T: ToOwned + UpperExp,
    T::Owned: BorrowMut<T>, 
[src]

impl<T: ?Sized, '_> UpperHex for IsMut<'_, T> where
    T: ToOwned + UpperHex,
    T::Owned: BorrowMut<T>, 
[src]

Auto Trait Implementations

impl<'a, T: ?Sized> RefUnwindSafe for IsMut<'a, T> where
    T: RefUnwindSafe,
    <T as ToOwned>::Owned: RefUnwindSafe

impl<'a, T: ?Sized> Send for IsMut<'a, T> where
    T: Send,
    <T as ToOwned>::Owned: Send

impl<'a, T: ?Sized> Sync for IsMut<'a, T> where
    T: Sync,
    <T as ToOwned>::Owned: Sync

impl<'a, T: ?Sized> Unpin for IsMut<'a, T> where
    <T as ToOwned>::Owned: Unpin

impl<'a, T> !UnwindSafe for IsMut<'a, T>

Blanket Implementations

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

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

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

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

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

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.