Trait collections::borrow::ToOwned [] [src]

pub trait ToOwned {
    type Owned: Borrow<Self>;
    fn to_owned(&self) -> Self::Owned;
}

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>

Required Methods

fn to_owned(&self) -> Self::Owned

Creates owned data from borrowed data, usually by cloning.

Examples

Basic usage:

fn main() { let s = "a"; // &str let ss = s.to_owned(); // String let v = &[1, 2]; // slice let vv = v.to_owned(); // Vec }
let s = "a"; // &str
let ss = s.to_owned(); // String

let v = &[1, 2]; // slice
let vv = v.to_owned(); // Vec

Implementors