#![allow(
clippy::derivable_impls,
clippy::len_without_is_empty,
clippy::missing_errors_doc,
clippy::missing_panics_doc,
clippy::missing_safety_doc,
clippy::module_inception,
clippy::needless_doctest_main,
clippy::non_canonical_partial_ord_impl,
clippy::should_implement_trait,
clippy::upper_case_acronyms
)]
#![cfg_attr(not(feature = "std"), no_std)]
#![cfg_attr(all(feature = "alloc", feature = "nightly"), feature(allocator_api))]
#[cfg(not(any(feature = "std", feature = "alloc")))]
compile_error! { "either the \"std\" or \"alloc\" feature must be enabled" }
#[cfg(feature = "alloc")]
extern crate alloc;
extern crate rstmt_core as rstmt;
#[macro_use]
pub(crate) mod macros {
#[macro_use]
pub mod seal;
}
pub mod error;
#[cfg(feature = "motion")]
pub mod motion;
#[cfg(feature = "tonnetz")]
pub mod tonnetz;
pub mod triad;
mod impls {
mod impl_triad_base;
mod impl_triad_ext;
mod impl_triad_repr;
}
pub mod iter {
#[cfg(feature = "rayon")]
#[doc(inline)]
pub use self::parallel::ParIter;
#[doc(inline)]
pub use self::walker::Walk;
#[cfg(feature = "rayon")]
pub mod parallel;
pub mod walker;
pub(crate) mod prelude {
#[cfg(feature = "rayon")]
pub use super::parallel::*;
pub use super::walker::*;
}
}
mod traits {
#[doc(inline)]
pub use self::{raw_triad::*, triad_type::*};
mod raw_triad;
mod triad_type;
}
mod types {
#[doc(inline)]
pub use self::{factors::*, kinds::*, lpr::*};
mod factors;
mod kinds;
mod lpr;
}
#[doc(inline)]
#[cfg(feature = "tonnetz")]
pub use self::tonnetz::HyperTonnetz;
#[doc(inline)]
pub use self::{error::*, iter::prelude::*, traits::*, triad::*, types::*};
#[doc(hidden)]
pub mod prelude {
pub use crate::iter::prelude::*;
#[cfg(feature = "motion")]
pub use crate::motion::prelude::*;
#[cfg(feature = "tonnetz")]
pub use crate::tonnetz::*;
pub use crate::traits::*;
pub use crate::triad::*;
pub use crate::types::*;
}