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<Bti>

Source§

impl TakeFrom<WireOptionalHandle> for Option<Channel>

Source§

impl TakeFrom<WireOptionalHandle> for Option<Clock>

Source§

impl TakeFrom<WireOptionalHandle> for Option<Event>

Source§

impl TakeFrom<WireOptionalHandle> for Option<EventPair>

Source§

impl TakeFrom<WireOptionalHandle> for Option<Exception>

Source§

impl TakeFrom<WireOptionalHandle> for Option<Fifo>

Source§

impl TakeFrom<WireOptionalHandle> for Option<Guest>

Source§

impl TakeFrom<WireOptionalHandle> for Option<Handle>

Source§

impl TakeFrom<WireOptionalHandle> for Option<Interrupt>

Source§

impl TakeFrom<WireOptionalHandle> for Option<Iob>

Source§

impl TakeFrom<WireOptionalHandle> for Option<Iommu>

Source§

impl TakeFrom<WireOptionalHandle> for Option<Job>

Source§

impl TakeFrom<WireOptionalHandle> for Option<Pager>

Source§

impl TakeFrom<WireOptionalHandle> for Option<Pmt>

Source§

impl TakeFrom<WireOptionalHandle> for Option<Port>

Source§

impl TakeFrom<WireOptionalHandle> for Option<Process>

Source§

impl TakeFrom<WireOptionalHandle> for Option<Profile>

Source§

impl TakeFrom<WireOptionalHandle> for Option<Resource>

Source§

impl TakeFrom<WireOptionalHandle> for Option<Socket>

Source§

impl TakeFrom<WireOptionalHandle> for Option<Stream>

Source§

impl TakeFrom<WireOptionalHandle> for Option<Thread>

Source§

impl TakeFrom<WireOptionalHandle> for Option<Timer>

Source§

impl TakeFrom<WireOptionalHandle> for Option<Vcpu>

Source§

impl TakeFrom<WireOptionalHandle> for Option<Vmar>

Source§

impl TakeFrom<WireOptionalHandle> for Option<Vmo>

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 Bti

Source§

impl TakeFrom<WireHandle> for Channel

Source§

impl TakeFrom<WireHandle> for Clock

Source§

impl TakeFrom<WireHandle> for Event

Source§

impl TakeFrom<WireHandle> for EventPair

Source§

impl TakeFrom<WireHandle> for Exception

Source§

impl TakeFrom<WireHandle> for Fifo

Source§

impl TakeFrom<WireHandle> for Guest

Source§

impl TakeFrom<WireHandle> for Handle

Source§

fn take_from(from: &WireHandle) -> Self

Source§

impl TakeFrom<WireHandle> for Interrupt

Source§

impl TakeFrom<WireHandle> for Iob

Source§

impl TakeFrom<WireHandle> for Iommu

Source§

impl TakeFrom<WireHandle> for Job

Source§

impl TakeFrom<WireHandle> for Pager

Source§

impl TakeFrom<WireHandle> for Pmt

Source§

impl TakeFrom<WireHandle> for Port

Source§

impl TakeFrom<WireHandle> for Process

Source§

impl TakeFrom<WireHandle> for Profile

Source§

impl TakeFrom<WireHandle> for Resource

Source§

impl TakeFrom<WireHandle> for Socket

Source§

impl TakeFrom<WireHandle> for Stream

Source§

impl TakeFrom<WireHandle> for Thread

Source§

impl TakeFrom<WireHandle> for Timer

Source§

impl TakeFrom<WireHandle> for Vcpu

Source§

impl TakeFrom<WireHandle> for Vmar

Source§

impl TakeFrom<WireHandle> for Vmo

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: Timeline> TakeFrom<WireI64> for Instant<T, NsUnit>

Source§

fn take_from(from: &WireI64) -> Self

Source§

impl<T: Timeline> TakeFrom<WireI64> for Instant<T, TicksUnit>

Source§

fn take_from(from: &WireI64) -> 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§