y-octo 0.0.3

High-performance and thread-safe CRDT implementation compatible with Yjs
Documentation
pub use std::sync::{Arc, Weak};
#[allow(unused)]
#[cfg(not(loom))]
pub(crate) use std::sync::{
    Mutex, RwLock, RwLockReadGuard, RwLockWriteGuard,
    atomic::{AtomicBool, AtomicU8, AtomicU16, AtomicU32, Ordering},
};
#[cfg(all(test, not(loom)))]
pub(crate) use std::{
    sync::{MutexGuard, atomic::AtomicUsize},
    thread,
};

#[cfg(loom)]
pub(crate) use loom::{
    sync::{
        Mutex, MutexGuard, RwLock, RwLockReadGuard, RwLockWriteGuard,
        atomic::{AtomicBool, AtomicU8, AtomicU16, AtomicU32, AtomicUsize, Ordering},
    },
    thread,
};

#[macro_export(local_inner_macros)]
macro_rules! loom_model {
    ($test:block) => {
        #[cfg(loom)]
        loom::model(move || $test);

        #[cfg(not(loom))]
        $test
    };
}