shallowclone

Trait MakeOwned

Source
pub trait MakeOwned: Clone {
    type Owned: Clone + 'static;

    // Required method
    fn make_owned(self) -> Self::Owned;
}
Expand description

Takes a value and transforms it to be 'static, cloning parts if necessary

Required Associated Types§

Source

type Owned: Clone + 'static

This must be a 'static SUBTYPE of Self.

For more information see https://doc.rust-lang.org/reference/subtyping.html

Required Methods§

Source

fn make_owned(self) -> Self::Owned

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl MakeOwned for bool

Source§

type Owned = bool

Source§

fn make_owned(self) -> Self::Owned

Source§

impl MakeOwned for char

Source§

type Owned = char

Source§

fn make_owned(self) -> Self::Owned

Source§

impl MakeOwned for f32

Source§

type Owned = f32

Source§

fn make_owned(self) -> Self::Owned

Source§

impl MakeOwned for f64

Source§

type Owned = f64

Source§

fn make_owned(self) -> Self::Owned

Source§

impl MakeOwned for i8

Source§

type Owned = i8

Source§

fn make_owned(self) -> Self::Owned

Source§

impl MakeOwned for i16

Source§

type Owned = i16

Source§

fn make_owned(self) -> Self::Owned

Source§

impl MakeOwned for i32

Source§

type Owned = i32

Source§

fn make_owned(self) -> Self::Owned

Source§

impl MakeOwned for i64

Source§

type Owned = i64

Source§

fn make_owned(self) -> Self::Owned

Source§

impl MakeOwned for i128

Source§

type Owned = i128

Source§

fn make_owned(self) -> Self::Owned

Source§

impl MakeOwned for u8

Source§

type Owned = u8

Source§

fn make_owned(self) -> Self::Owned

Source§

impl MakeOwned for u16

Source§

type Owned = u16

Source§

fn make_owned(self) -> Self::Owned

Source§

impl MakeOwned for u32

Source§

type Owned = u32

Source§

fn make_owned(self) -> Self::Owned

Source§

impl MakeOwned for u64

Source§

type Owned = u64

Source§

fn make_owned(self) -> Self::Owned

Source§

impl MakeOwned for u128

Source§

type Owned = u128

Source§

fn make_owned(self) -> Self::Owned

Source§

impl MakeOwned for String

Source§

impl<'a> MakeOwned for Cow<'a, str>

Source§

type Owned = Cow<'static, str>

Source§

fn make_owned(self) -> <Self as MakeOwned>::Owned

Source§

impl<'a, A: MakeOwned + 'static, T> MakeOwned for Cow<'a, T>
where T: MakeOwned<Owned = A> + Clone + ?Sized,

Source§

type Owned = Cow<'static, A>

Source§

fn make_owned(self) -> <Self as MakeOwned>::Owned

Source§

impl<'a, T: MakeOwned + Clone> MakeOwned for Cow<'a, [T]>
where <T as MakeOwned>::Owned: Clone,

Source§

type Owned = Cow<'static, [<T as MakeOwned>::Owned]>

Source§

fn make_owned(self) -> <Self as MakeOwned>::Owned

Source§

impl<K: MakeOwned, V: MakeOwned> MakeOwned for BTreeMap<K, V>
where K::Owned: Eq + Ord,

Source§

type Owned = BTreeMap<<K as MakeOwned>::Owned, <V as MakeOwned>::Owned>

Source§

fn make_owned(self) -> Self::Owned

Source§

impl<K: MakeOwned, V: MakeOwned> MakeOwned for HashMap<K, V>
where K::Owned: Eq + Hash,

Source§

type Owned = HashMap<<K as MakeOwned>::Owned, <V as MakeOwned>::Owned>

Source§

fn make_owned(self) -> Self::Owned

Source§

impl<T: 'static> MakeOwned for PhantomData<T>

Source§

impl<T: MakeOwned> MakeOwned for Option<T>

Source§

type Owned = Option<<T as MakeOwned>::Owned>

Source§

fn make_owned(self) -> Self::Owned

Source§

impl<T: MakeOwned> MakeOwned for Box<T>

Source§

type Owned = Box<<T as MakeOwned>::Owned>

Source§

fn make_owned(self) -> Self::Owned

Source§

impl<T: MakeOwned> MakeOwned for Vec<T>

Source§

type Owned = Vec<<T as MakeOwned>::Owned>

Source§

fn make_owned(self) -> Self::Owned

Source§

impl<const N: usize, T: MakeOwned> MakeOwned for [T; N]

Source§

type Owned = [<T as MakeOwned>::Owned; N]

Source§

fn make_owned(self) -> Self::Owned

Implementors§

Source§

impl<'a, T: MakeOwned> MakeOwned for CoCow<'a, T>
where <T as MakeOwned>::Owned: Clone,

Source§

type Owned = CoCow<'static, <T as MakeOwned>::Owned>

Source§

impl<'a, T: MakeOwned> MakeOwned for CoCowSlice<'a, T>
where <T as MakeOwned>::Owned: Clone,

Source§

type Owned = CoCowSlice<'static, <T as MakeOwned>::Owned>