A generalization of
Clone to borrowed data.
Some types make it possible to go from borrowed to owned, usually by
Clone trait. But
Clone works only for going from
ToOwned trait generalizes
Clone to construct owned data
from any borrow of a given type.
#[must_use = "cloning is often expensive and is not expected to have side effects"]
fn to_owned(&self) -> Self::Owned
Creates owned data from borrowed data, usually by cloning.
let s: &str = "a"; let ss: String = s.to_owned(); let v: &[i32] = &[1, 2]; let vv: Vec<i32> = v.to_owned();
fn clone_into(&self, target: &mut Self::Owned)
🔬 This is a nightly-only experimental API. (
Uses borrowed data to replace owned data, usually by cloning.
This is borrow-generalized version of
let mut s: String = String::new(); "hello".clone_into(&mut s); let mut v: Vec<i32> = Vec::new(); [1, 2][..].clone_into(&mut v);