pub trait ToOwned {
type Owned: Borrow<Self>;
// Required method
fn to_owned(&self) -> Self::Owned;
// Provided method
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.
Required Associated Types§
Required Methods§
Provided Methods§
1.63.0 · Sourcefn clone_into(&self, target: &mut Self::Owned)
fn clone_into(&self, target: &mut Self::Owned)
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);
Examples found in repository?
examples/asset/multi_asset_sync.rs (line 262)
250fn get_async_loading_state(
251 state: Res<AsyncLoadingState>,
252 mut next_loading_state: ResMut<NextState<LoadingState>>,
253 mut text: Query<&mut Text, With<LoadingText>>,
254) {
255 // Load the value written by the `Future`.
256 let is_loaded = state.0.load(Ordering::Acquire);
257
258 // If loaded, change the state.
259 if is_loaded {
260 next_loading_state.set(LoadingState::Loaded);
261 if let Ok(mut text) = text.single_mut() {
262 "Loaded!".clone_into(&mut **text);
263 }
264 }
265}
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.