Trait molecule::prelude::ToOwned1.0.0[][src]

pub trait ToOwned {
    type Owned: Borrow<Self>;
    #[must_use = "cloning is often expensive and is not expected to have side effects"]
    fn to_owned(&self) -> Self::Owned;

    fn clone_into(&self, target: &mut Self::Owned) { ... }
}
Expand description

A generalization of Clone to borrowed data.

Some types make it possible to go from borrowed to owned, usually by implementing the Clone trait. But Clone works only for going from &T to T. The ToOwned trait generalizes Clone to construct owned data from any borrow of a given type.

Associated Types

type Owned: Borrow<Self>[src]

The resulting type after obtaining ownership.

Required methods

#[must_use = "cloning is often expensive and is not expected to have side effects"]
fn to_owned(&self) -> Self::Owned
[src]

Creates owned data from borrowed data, usually by cloning.

Examples

Basic usage:

let s: &str = "a";
let ss: String = s.to_owned();

let v: &[i32] = &[1, 2];
let vv: Vec<i32> = v.to_owned();

Provided methods

fn clone_into(&self, target: &mut Self::Owned)[src]

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning.

This is borrow-generalized version of Clone::clone_from.

Examples

Basic usage:

let mut s: String = String::new();
"hello".clone_into(&mut s);

let mut v: Vec<i32> = Vec::new();
[1, 2][..].clone_into(&mut v);

Implementations on Foreign Types

impl ToOwned for str[src]

type Owned = String

pub fn to_owned(&self) -> String[src]

pub fn clone_into(&self, target: &mut String)[src]

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

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

type Owned = Vec<T, Global>

pub fn to_owned(&self) -> Vec<T, Global>

Notable traits for Vec<u8, A>

impl<A> Write for Vec<u8, A> where
    A: Allocator
[src]

pub fn clone_into(&self, target: &mut Vec<T, Global>)[src]

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

impl ToOwned for OsStr[src]

type Owned = OsString

pub fn to_owned(&self) -> OsString[src]

pub fn clone_into(&self, target: &mut OsString)[src]

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

impl ToOwned for CStr[src]

type Owned = CString

pub fn to_owned(&self) -> CString[src]

pub fn clone_into(&self, target: &mut CString)[src]

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

impl ToOwned for Path[src]

type Owned = PathBuf

pub fn to_owned(&self) -> PathBuf[src]

pub fn clone_into(&self, target: &mut PathBuf)[src]

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Implementors

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

type Owned = T

pub fn to_owned(&self) -> T[src]

pub fn clone_into(&self, target: &mut T)[src]

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added