pub unsafe trait ProcSend: Send { }Expand description
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.