use std::marker::PhantomData;
#[derive(Copy, Clone, Eq, PartialEq, PartialOrd, Ord, Hash, Debug, Default)]
pub struct Invariant<'inv>(PhantomData<&'inv mut &'inv fn(&'inv ()) -> &'inv ()>);
impl<'inv> Invariant<'inv> {
pub fn new() -> Self {
Invariant(PhantomData)
}
pub fn new_ref<T>(_v: &'inv T) -> Self {
Invariant(PhantomData)
}
}
#[cfg(not(feature = "parallel"))]
pub trait ParallelSend {}
#[cfg(feature = "parallel")]
pub trait ParallelSend: Send {}
#[cfg(not(feature = "parallel"))]
impl<T> ParallelSend for T {}
#[cfg(feature = "parallel")]
impl<T: Send> ParallelSend for T {}