Enum MixedRef

Source
pub enum MixedRef<'a, T: ?Sized + 'a> {
    Owned(Box<T>),
    Borrowed(&'a T),
}
Expand description

A reference to either owned or borrowed data.

If the data is owned, it’s recommended to provide the 'static lifetime. In some cases, there’s no other option.

If mutably borrowing data, use MixedRefMut.

Variants§

§

Owned(Box<T>)

Owned, boxed data.

§

Borrowed(&'a T)

Borrowed data.

Trait Implementations§

Source§

impl<'a, T: ?Sized> AsRef<T> for MixedRef<'a, T>

Source§

fn as_ref(&self) -> &T

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl<'a, T: ?Sized> Borrow<T> for MixedRef<'a, T>

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<'a, T: Debug + ?Sized + 'a> Debug for MixedRef<'a, T>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'a, T: Default> Default for MixedRef<'a, T>

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<'a, T: ?Sized> Deref for MixedRef<'a, T>

Source§

type Target = T

The resulting type after dereferencing.
Source§

fn deref(&self) -> &T

Dereferences the value.
Source§

impl<'a, T: ?Sized> From<&'a T> for MixedRef<'a, T>

Source§

fn from(r: &'a T) -> Self

Converts to this type from the input type.
Source§

impl<'a, T: ?Sized> From<Box<T>> for MixedRef<'a, T>

Source§

fn from(b: Box<T>) -> Self

Converts to this type from the input type.
Source§

impl<'a, T: ?Sized> From<MixedRefMut<'a, T>> for MixedRef<'a, T>

Source§

fn from(r: MixedRefMut<'a, T>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<String> for MixedRef<'a, str>

Source§

fn from(s: String) -> Self

Converts to this type from the input type.
Source§

impl<'a, T> From<Vec<T>> for MixedRef<'a, [T]>

Source§

fn from(v: Vec<T>) -> Self

Converts to this type from the input type.
Source§

impl<'a, T: Hash + ?Sized + 'a> Hash for MixedRef<'a, T>

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

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

Feeds a slice of this type into the given Hasher. Read more
Source§

impl<'a, T: ?Sized + AsRef<U>, U: ?Sized + PartialEq> PartialEq<T> for MixedRef<'a, U>

Source§

fn eq(&self, other: &T) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<'a, T: Eq + ?Sized + 'a> Eq for MixedRef<'a, T>

Auto Trait Implementations§

§

impl<'a, T> Freeze for MixedRef<'a, T>
where T: ?Sized,

§

impl<'a, T> RefUnwindSafe for MixedRef<'a, T>
where T: RefUnwindSafe + ?Sized,

§

impl<'a, T> Send for MixedRef<'a, T>
where T: Sync + Send + ?Sized,

§

impl<'a, T> Sync for MixedRef<'a, T>
where T: Sync + ?Sized,

§

impl<'a, T> Unpin for MixedRef<'a, T>
where T: ?Sized,

§

impl<'a, T> UnwindSafe for MixedRef<'a, T>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.