#![cfg_attr(not(feature = "std"), no_std)]
#![allow(unexpected_cfgs)]
#[cfg(all(feature = "2d", feature = "3d"))]
compile_error!("The '2d' & '3d' features cannot be used at the same time.");
#[cfg(all(feature = "parry-f32", feature = "parry-f64"))]
compile_error!("The 'parry-f32' & 'parry-f64' features cannot be used at the same time.");
#[cfg(all(feature = "mask-u32", feature = "mask-u64"))]
compile_error!("The 'mask-u32' & 'mask-u64' features cannot be used at the same time.");
pub mod object;
pub mod world;
extern crate alloc;
#[cfg(all(feature = "2d", feature = "parry-f32"))]
pub extern crate parry2d as parry;
#[cfg(all(feature = "2d", feature = "parry-f64"))]
pub extern crate parry2d_f64 as parry;
#[cfg(all(feature = "3d", feature = "parry-f32"))]
pub extern crate parry3d as parry;
#[cfg(all(feature = "3d", feature = "parry-f64"))]
pub extern crate parry3d_f64 as parry;
#[cfg(feature = "mask-u32")]
pub type Mask = u32;
#[cfg(feature = "mask-u64")]
pub type Mask = u64;
use alloc::sync::Arc;
use spin::RwLock;
pub type Shared<O> = Arc<RwLock<O>>;
pub fn make_shared<O>(object: O) -> Shared<O> {
Arc::new(RwLock::new(object))
}