use mpi::traits::Equivalence;
fn main() {
let (_universe, threading) =
mpi::initialize_with_threading(mpi::Threading::Serialized).unwrap();
assert_ne!(threading, mpi::Threading::Multiple);
assert!(std::thread::spawn(move || {
#[derive(Equivalence)]
struct EnsurePanicEquivalenceInitialization(i32);
EnsurePanicEquivalenceInitialization::equivalent_datatype();
})
.join()
.is_err());
#[derive(Equivalence)]
struct EnsureNoPanicIfInitializedOnMainThread(i32);
EnsureNoPanicIfInitializedOnMainThread::equivalent_datatype();
assert!(std::thread::spawn(move || {
EnsureNoPanicIfInitializedOnMainThread::equivalent_datatype();
})
.join()
.is_ok());
}