#![cfg_attr(not(feature = "std"), no_std)]
extern crate alloc;
pub mod belt_drive;
pub mod chain_drive;
pub mod clock;
pub mod differential;
pub(crate) mod dsp;
pub mod engine;
pub mod error;
pub mod event;
pub mod forced_induction;
pub mod gear;
#[cfg(not(feature = "naad-backend"))]
#[allow(dead_code)]
mod math;
pub mod mixer;
pub mod motor;
pub mod presets;
#[cfg(not(feature = "naad-backend"))]
#[allow(dead_code)]
pub(crate) mod rng;
pub mod smooth;
pub mod traits;
pub mod transmission;
pub mod turbine;
pub mod prelude {
pub use crate::belt_drive::BeltDrive;
pub use crate::chain_drive::ChainDrive;
pub use crate::clock::{Clock, ClockType};
pub use crate::differential::Differential;
pub use crate::engine::{Engine, EngineType};
pub use crate::error::{GhurniError, Result};
pub use crate::event::MechanicalEvent;
pub use crate::forced_induction::{ForcedInduction, InductionType};
pub use crate::gear::{Gear, GearMaterial};
pub use crate::mixer::MechanicalMixer;
pub use crate::motor::{Motor, MotorType};
pub use crate::traits::Synthesizer;
pub use crate::transmission::Transmission;
pub use crate::turbine::Turbine;
}
#[cfg(test)]
mod assert_traits {
fn _assert_send_sync<T: Send + Sync>() {}
#[test]
fn public_types_are_send_sync() {
_assert_send_sync::<crate::error::GhurniError>();
_assert_send_sync::<crate::engine::Engine>();
_assert_send_sync::<crate::engine::EngineType>();
_assert_send_sync::<crate::gear::Gear>();
_assert_send_sync::<crate::gear::GearMaterial>();
_assert_send_sync::<crate::motor::Motor>();
_assert_send_sync::<crate::motor::MotorType>();
_assert_send_sync::<crate::turbine::Turbine>();
_assert_send_sync::<crate::clock::Clock>();
_assert_send_sync::<crate::clock::ClockType>();
_assert_send_sync::<crate::forced_induction::ForcedInduction>();
_assert_send_sync::<crate::forced_induction::InductionType>();
_assert_send_sync::<crate::transmission::Transmission>();
_assert_send_sync::<crate::differential::Differential>();
_assert_send_sync::<crate::chain_drive::ChainDrive>();
_assert_send_sync::<crate::belt_drive::BeltDrive>();
_assert_send_sync::<crate::event::MechanicalEvent>();
_assert_send_sync::<crate::smooth::SmoothedParam>();
}
}