Trait TakeFrom

Source
pub trait TakeFrom<T: ?Sized> {
    const COPY_OPTIMIZATION: CopyOptimization<Self> = _;

    // Required method
    fn take_from(from: &T) -> Self;
}
Expand description

From conversions which may take from a reference using interior mutability.

Provided Associated Constants§

Source

const COPY_OPTIMIZATION: CopyOptimization<Self> = _

An optimization flag that allows the bytes of this type to be copied directly during conversion instead of calling take_from.

This optimization is disabled by default. To enable this optimization, you must unsafely attest that Self is trivially copyable using CopyOptimization::enable or CopyOptimization::enable_if.

Required Methods§

Source

fn take_from(from: &T) -> Self

Converts from the given T, taking any resources that can’t be cloned.

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.

Implementations on Foreign Types§

Source§

impl TakeFrom<bool> for bool

Source§

impl TakeFrom<i8> for i8

Source§

impl TakeFrom<u8> for u8

Source§

impl TakeFrom<WireChannel> for Channel

Source§

fn take_from(from: &WireChannel) -> Self

Source§

impl TakeFrom<WireOptionalChannel> for Option<Channel>

Source§

impl TakeFrom<WireOptionalHandle> for Option<Handle>

Source§

impl TakeFrom<WireF32> for f32

Source§

impl TakeFrom<WireF64> for f64

Source§

impl TakeFrom<WireI16> for i16

Source§

impl TakeFrom<WireI32> for i32

Source§

impl TakeFrom<WireI64> for i64

Source§

impl TakeFrom<WireOptionalString> for Option<String>

Source§

impl TakeFrom<WireString> for String

Source§

fn take_from(from: &WireString) -> Self

Source§

impl TakeFrom<WireU16> for u16

Source§

impl TakeFrom<WireU32> for u32

Source§

impl TakeFrom<WireU64> for u64

Source§

impl TakeFrom<WireHandle> for Handle

Source§

fn take_from(from: &WireHandle) -> Self

Source§

impl<T, E, WT, WE> TakeFrom<WireResult<WT, WE>> for Result<T, E>
where T: TakeFrom<WT>, E: TakeFrom<WE>,

Source§

fn take_from(from: &WireResult<WT, WE>) -> Self

Source§

impl<T: TakeFrom<WT>, WT> TakeFrom<WireBox<WT>> for Option<T>

Source§

fn take_from(from: &WireBox<WT>) -> Self

Source§

impl<T: TakeFrom<WT>, WT> TakeFrom<WireOptionalVector<WT>> for Option<Vec<T>>

Source§

fn take_from(from: &WireOptionalVector<WT>) -> Self

Source§

impl<T: TakeFrom<WT>, WT> TakeFrom<WireVector<WT>> for Vec<T>

Source§

fn take_from(from: &WireVector<WT>) -> Self

Source§

impl<T: TakeFrom<WT>, WT> TakeFrom<WT> for Box<T>

Source§

fn take_from(from: &WT) -> Self

Source§

impl<T: TakeFrom<WT>, WT, const N: usize> TakeFrom<[WT; N]> for [T; N]

Implementors§

Source§

impl TakeFrom<WireF32> for WireF32

Source§

impl TakeFrom<WireF64> for WireF64

Source§

impl TakeFrom<WireI16> for WireI16

Source§

impl TakeFrom<WireI32> for WireI32

Source§

impl TakeFrom<WireI64> for WireI64

Source§

impl TakeFrom<WireU16> for WireU16

Source§

impl TakeFrom<WireU32> for WireU32

Source§

impl TakeFrom<WireU64> for WireU64

impl<T, P, U> TakeFrom<ClientEnd<U, P>> for ClientEnd<T, P>
where T: TakeFrom<U>,

impl<T, P, U> TakeFrom<ServerEnd<U, P>> for ServerEnd<T, P>
where T: TakeFrom<U>,

impl<T, WT> TakeFrom<WireFlexible<WT>> for Flexible<T>
where T: TakeFrom<WT>,

impl<T, WT, E, WE> TakeFrom<WireFlexibleResult<WT, WE>> for FlexibleResult<T, E>
where T: TakeFrom<WT>, E: TakeFrom<WE>,