rsfi_traits/
lib.rs

1//! Various traits used to establish a solid foundation for defining and manipulating
2//! containers, spaces, fields, and other related abstractions. The core trait, [`RawSpace`],
3//! is a fundamental building block for defining _spaces_ (i.e. containers containing elements
4//! of a specific type). The [`Container`] trait builds upon [`RawSpace`] to provide a more
5//! robust interface for containers and higher-kinded abstractions.
6//! #![crate_type = "lib"]
7
8#![allow(
9    clippy::missing_errors_doc,
10    clippy::missing_safety_doc,
11    clippy::module_inception,
12    clippy::needless_doctest_main,
13    clippy::should_implement_trait,
14    clippy::upper_case_acronyms
15)]
16#![cfg_attr(not(feature = "std"), no_std)]
17#![cfg_attr(all(feature = "alloc", feature = "nightly"), feature(allocator_api))]
18// // compiler check
19// #[cfg(not(any(feature = "std", feature = "alloc")))]
20// compile_error! { "either the \"std\" or \"alloc\" feature must be enabled" }
21// macros
22#[macro_use]
23pub(crate) mod macros {
24    #[macro_use]
25    pub mod seal;
26}
27// external crates
28#[cfg(feature = "alloc")]
29extern crate alloc;
30// modules
31
32mod impls {
33    mod impl_interest;
34}
35
36pub mod ops {
37    //! This module provides various operations traits and implementations for musical concepts
38    #[doc(inline)]
39    #[allow(unused_imports)]
40    pub use self::{interest::*, percent::*};
41
42    pub(crate) mod interest;
43    pub(crate) mod percent;
44}
45// re-exports
46#[doc(inline)]
47pub use self::ops::*;
48// prelude
49#[doc(hidden)]
50pub mod prelude {
51    pub use crate::ops::*;
52}