pub fn impls_send_weak<T>() -> boolwhere
T: ?Sized,alloc and unreliable only.Expand description
Returns true if the given type implements Send.
Use define_impls_trait_ignore_lt_fn macro to generate other
trait implementation check functions.
Library tests ensure that the impls_trait checks are performed
at compile time and fully optimized with no runtime cost at
opt-level >= 1. Note that the release profile uses
opt-level = 3 by default.
ยงReliability
While it is unlikely, there is still a possibility that this function may return false negatives in future Rust versions.
The correctness of the results returned by the functions depends on the following:
- Documented behavior that if
TimplementsEq, twoRcs that point to the same allocation are always equal: https://doc.rust-lang.org/1.82.0/std/rc/struct.Rc.html#method.eq. - Undocumented behavior that the
Rc::partial_eqimplementation forT: Eqwill not usePartialEq::eqif bothRcs point to the same memory location. - The assumption that the undocumented short-circuit behavior described above will be retained for optimization purposes.
There is no formal guarantee that the undocumented behavior
described above will be retained. If the implementation changes
in a future Rust version, the function may return a false
negative, that is, it may return false, even though T
implements the trait. However, the implementation guarantees
that a false positive result is impossible, i.e., the function
will never return true if T does not implement the trait in
any future Rust version.
Details: