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")]
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;
}