rsfi-traits 0.1.0

Traits and interfaces supporting the rsfi framework
Documentation
//! Various traits used to establish a solid foundation for defining and manipulating
//! containers, spaces, fields, and other related abstractions. The core trait, [`RawSpace`],
//! is a fundamental building block for defining _spaces_ (i.e. containers containing elements
//! of a specific type). The [`Container`] trait builds upon [`RawSpace`] to provide a more
//! robust interface for containers and higher-kinded abstractions.
//! #![crate_type = "lib"]

#![allow(
    clippy::missing_errors_doc,
    clippy::missing_safety_doc,
    clippy::module_inception,
    clippy::needless_doctest_main,
    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))]
// // compiler check
// #[cfg(not(any(feature = "std", feature = "alloc")))]
// compile_error! { "either the \"std\" or \"alloc\" feature must be enabled" }
// macros
#[macro_use]
pub(crate) mod macros {
    #[macro_use]
    pub mod seal;
}
// external crates
#[cfg(feature = "alloc")]
extern crate alloc;
// modules

mod impls {
    mod impl_interest;
}

pub mod ops {
    //! This module provides various operations traits and implementations for musical concepts
    #[doc(inline)]
    #[allow(unused_imports)]
    pub use self::{interest::*, percent::*};

    pub(crate) mod interest;
    pub(crate) mod percent;
}
// re-exports
#[doc(inline)]
pub use self::ops::*;
// prelude
#[doc(hidden)]
pub mod prelude {
    pub use crate::ops::*;
}