Skip to main content

ToOwned

Trait ToOwned 

1.36.0 · Source
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§

1.0.0 · Source

type Owned: Borrow<Self>

The resulting type after obtaining ownership.

Required Methods§

1.0.0 · Source

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

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§

1.63.0 · Source

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);

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

§

impl ToOwned for BStr

Available on crate feature alloc only.
§

type Owned = Vec<u8>

Source§

impl ToOwned for ByteStr

§

impl ToOwned for Bytes

Available on crate feature alloc only.
§

type Owned = Vec<u8>

1.3.0 · Source§

impl ToOwned for CStr

§

impl ToOwned for DataMarkerAttributes

Available on crate feature alloc only.

Enabled with the alloc Cargo feature.

§

type Owned = Box<DataMarkerAttributes>

1.0.0 · Source§

impl ToOwned for OsStr

1.0.0 · Source§

impl ToOwned for Path

§

impl ToOwned for SslContextRef

§

impl ToOwned for SslSessionRef

§

impl ToOwned for UriTemplateStr

§

type Owned = UriTemplateString

§

impl ToOwned for X509Ref

§

type Owned = X509

§

impl ToOwned for X509StoreRef

§

impl ToOwned for ZeroAsciiIgnoreCaseTrie<[u8]>

Available on crate feature alloc only.
§

type Owned = ZeroAsciiIgnoreCaseTrie<Box<[u8]>>

§

impl ToOwned for ZeroTrieExtendedCapacity<[u8]>

Available on crate feature alloc only.
§

type Owned = ZeroTrieExtendedCapacity<Box<[u8]>>

§

impl ToOwned for ZeroTriePerfectHash<[u8]>

Available on crate feature alloc only.
§

type Owned = ZeroTriePerfectHash<Box<[u8]>>

§

impl ToOwned for ZeroTrieSimpleAscii<[u8]>

Available on crate feature alloc only.
§

type Owned = ZeroTrieSimpleAscii<Box<[u8]>>

1.0.0 · Source§

impl ToOwned for str

Available on non-no_global_oom_handling only.
§

impl<A, B, C, D, E, F, Format> ToOwned for Tuple6VarULE<A, B, C, D, E, F, Format>
where A: VarULE + ?Sized, B: VarULE + ?Sized, C: VarULE + ?Sized, D: VarULE + ?Sized, E: VarULE + ?Sized, F: VarULE + ?Sized, Format: VarZeroVecFormat,

Available on crate feature alloc only.
§

type Owned = Box<Tuple6VarULE<A, B, C, D, E, F, Format>>

§

impl<A, B, C, D, E, Format> ToOwned for Tuple5VarULE<A, B, C, D, E, Format>
where A: VarULE + ?Sized, B: VarULE + ?Sized, C: VarULE + ?Sized, D: VarULE + ?Sized, E: VarULE + ?Sized, Format: VarZeroVecFormat,

Available on crate feature alloc only.
§

type Owned = Box<Tuple5VarULE<A, B, C, D, E, Format>>

§

impl<A, B, C, D, Format> ToOwned for Tuple4VarULE<A, B, C, D, Format>
where A: VarULE + ?Sized, B: VarULE + ?Sized, C: VarULE + ?Sized, D: VarULE + ?Sized, Format: VarZeroVecFormat,

Available on crate feature alloc only.
§

type Owned = Box<Tuple4VarULE<A, B, C, D, Format>>

§

impl<A, B, C, Format> ToOwned for Tuple3VarULE<A, B, C, Format>
where A: VarULE + ?Sized, B: VarULE + ?Sized, C: VarULE + ?Sized, Format: VarZeroVecFormat,

Available on crate feature alloc only.
§

type Owned = Box<Tuple3VarULE<A, B, C, Format>>

§

impl<A, B, Format> ToOwned for Tuple2VarULE<A, B, Format>
where A: VarULE + ?Sized, B: VarULE + ?Sized, Format: VarZeroVecFormat,

Available on crate feature alloc only.
§

type Owned = Box<Tuple2VarULE<A, B, Format>>

§

impl<A, V> ToOwned for VarTupleULE<A, V>
where A: AsULE + 'static, V: VarULE + ?Sized,

Available on crate feature alloc only.
§

type Owned = Box<VarTupleULE<A, V>>

§

impl<S> ToOwned for RiAbsoluteStr<S>
where S: Spec,

§

type Owned = RiAbsoluteString<S>

§

impl<S> ToOwned for RiFragmentStr<S>
where S: Spec,

§

type Owned = RiFragmentString<S>

§

impl<S> ToOwned for RiQueryStr<S>
where S: Spec,

§

type Owned = RiQueryString<S>

§

impl<S> ToOwned for RiReferenceStr<S>
where S: Spec,

§

type Owned = RiReferenceString<S>

§

impl<S> ToOwned for RiRelativeStr<S>
where S: Spec,

§

type Owned = RiRelativeString<S>

§

impl<S> ToOwned for RiStr<S>
where S: Spec,

§

type Owned = RiString<S>

§

impl<T> ToOwned for DsaRef<T>

§

type Owned = Dsa<T>

§

impl<T> ToOwned for EcKeyRef<T>

§

type Owned = EcKey<T>

§

impl<T> ToOwned for PKeyRef<T>

§

type Owned = PKey<T>

§

impl<T> ToOwned for RsaRef<T>

§

type Owned = Rsa<T>

1.0.0 · Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

1.0.0 · Source§

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

Available on non-no_global_oom_handling only.
Source§

type Owned = Vec<T>