cycle_ptr 0.1.0

Smart pointers, with cycles
//! This module contains the various user-facing pointer types.
mod memptr;
mod ptr;
#[cfg(feature = "multi_thread")]
mod single_or_multi_thread_dynptr;
#[cfg(feature = "multi_thread")]
mod single_or_multi_thread_ptr;
#[cfg(feature = "multi_thread")]
mod sync_memptr;
#[cfg(feature = "multi_thread")]
mod sync_ptr;
#[cfg(all(feature = "weak_pointer", feature = "multi_thread"))]
mod sync_weak;
#[cfg(feature = "weak_pointer")]
mod weak;

#[cfg(feature = "multi_thread")]
use single_or_multi_thread_dynptr::SingleOrMultiThreadDynPtr;
#[cfg(feature = "multi_thread")]
use single_or_multi_thread_ptr::SingleOrMultiThreadPtr;

pub use memptr::GcMemberPtr;
pub use ptr::GcPtr;
#[cfg(feature = "weak_pointer")]
pub use weak::Weak;

#[cfg(feature = "multi_thread")]
/// Thread-safe implementations of pointer types.
pub(crate) mod sync {
    pub use super::sync_memptr::GcMtMemberPtr;
    pub use super::sync_ptr::GcMtPtr;
    #[cfg(feature = "weak_pointer")]
    pub use super::sync_weak::Weak;
}