[][src]Trait interprocess_traits::ProcSend

pub unsafe trait ProcSend: Send { }

Types which can be transferred across process boundary.

An example of non-ProcSend type would be any type that contains pointers to values in a process’ address space. Instead a ProcSend type would use indices which the processes would know how to convert into their own address space.

In general, for any type to implement ProcSend, it must be Send, as threads conceptually are the same as processes which share the same address space.

Unlike Send, ProcSend is not an auto-trait by default, because auto-traits are not stable. Unless the auto_traits feature is enabled, it will be necessary to implement this trait manually.

Finally, currently ProcSend is only implemented for the built-in types which have specified type layout and are ffi-safe. This is a conservative default as there is no guarantee that the two interacting processes will be compiled with a same version of Rust or are Rust at all.

Implementations on Foreign Types

impl ProcSend for u8[src]

impl ProcSend for u16[src]

impl ProcSend for u32[src]

impl ProcSend for u64[src]

impl ProcSend for u128[src]

impl ProcSend for usize[src]

impl ProcSend for i8[src]

impl ProcSend for i16[src]

impl ProcSend for i32[src]

impl ProcSend for i64[src]

impl ProcSend for i128[src]

impl ProcSend for isize[src]

impl ProcSend for f32[src]

impl ProcSend for f64[src]

impl ProcSend for bool[src]

impl ProcSend for char[src]

impl ProcSend for str[src]

impl ProcSend for AtomicU8[src]

impl ProcSend for AtomicU16[src]

impl ProcSend for AtomicU32[src]

impl ProcSend for AtomicU64[src]

impl ProcSend for AtomicUsize[src]

impl ProcSend for AtomicI8[src]

impl ProcSend for AtomicI16[src]

impl ProcSend for AtomicI32[src]

impl ProcSend for AtomicI64[src]

impl ProcSend for AtomicIsize[src]

impl ProcSend for AtomicBool[src]

impl ProcSend for NonZeroU8[src]

impl ProcSend for NonZeroU16[src]

impl ProcSend for NonZeroU32[src]

impl ProcSend for NonZeroU64[src]

impl ProcSend for NonZeroU128[src]

impl ProcSend for NonZeroUsize[src]

impl ProcSend for NonZeroI8[src]

impl ProcSend for NonZeroI16[src]

impl ProcSend for NonZeroI32[src]

impl ProcSend for NonZeroI64[src]

impl ProcSend for NonZeroI128[src]

impl ProcSend for NonZeroIsize[src]

impl ProcSend for c_void[src]

impl<T1: ProcSend, T2: ProcSend, T3: ProcSend, T4: ProcSend, T5: ProcSend, T6: ProcSend, T7: ProcSend, T8: ProcSend, T9: ProcSend, T10: ProcSend, T11: ProcSend, T12: ProcSend> ProcSend for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)[src]

impl<T2: ProcSend, T3: ProcSend, T4: ProcSend, T5: ProcSend, T6: ProcSend, T7: ProcSend, T8: ProcSend, T9: ProcSend, T10: ProcSend, T11: ProcSend, T12: ProcSend> ProcSend for (T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)[src]

impl<T3: ProcSend, T4: ProcSend, T5: ProcSend, T6: ProcSend, T7: ProcSend, T8: ProcSend, T9: ProcSend, T10: ProcSend, T11: ProcSend, T12: ProcSend> ProcSend for (T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)[src]

impl<T4: ProcSend, T5: ProcSend, T6: ProcSend, T7: ProcSend, T8: ProcSend, T9: ProcSend, T10: ProcSend, T11: ProcSend, T12: ProcSend> ProcSend for (T4, T5, T6, T7, T8, T9, T10, T11, T12)[src]

impl<T5: ProcSend, T6: ProcSend, T7: ProcSend, T8: ProcSend, T9: ProcSend, T10: ProcSend, T11: ProcSend, T12: ProcSend> ProcSend for (T5, T6, T7, T8, T9, T10, T11, T12)[src]

impl<T6: ProcSend, T7: ProcSend, T8: ProcSend, T9: ProcSend, T10: ProcSend, T11: ProcSend, T12: ProcSend> ProcSend for (T6, T7, T8, T9, T10, T11, T12)[src]

impl<T7: ProcSend, T8: ProcSend, T9: ProcSend, T10: ProcSend, T11: ProcSend, T12: ProcSend> ProcSend for (T7, T8, T9, T10, T11, T12)[src]

impl<T8: ProcSend, T9: ProcSend, T10: ProcSend, T11: ProcSend, T12: ProcSend> ProcSend for (T8, T9, T10, T11, T12)[src]

impl<T9: ProcSend, T10: ProcSend, T11: ProcSend, T12: ProcSend> ProcSend for (T9, T10, T11, T12)[src]

impl<T10: ProcSend, T11: ProcSend, T12: ProcSend> ProcSend for (T10, T11, T12)[src]

impl<T11: ProcSend, T12: ProcSend> ProcSend for (T11, T12)[src]

impl<T12: ProcSend> ProcSend for (T12,)[src]

impl<T: ProcSend> ProcSend for RefCell<T>[src]

impl<T: ProcSend> ProcSend for Cell<T>[src]

impl<T: ProcSend> ProcSend for UnsafeCell<T>[src]

impl<T: ProcSend> ProcSend for ManuallyDrop<T>[src]

Loading content...

Implementors

Loading content...