acme_engine/
lib.rs

1/*
2    Appellation: acme-engine <library>
3    Contrib: @FL03
4*/
5//! This crate provides the
6#![allow(
7    clippy::missing_safety_doc,
8    clippy::module_inception,
9    clippy::needless_doctest_main,
10    clippy::upper_case_acronyms
11)]
12#![cfg_attr(not(feature = "std"), no_std)]
13
14#[cfg(not(all(feature = "std", feature = "alloc")))]
15compile_error! {
16    "The `acme-engine` crate requires either the `std` or `alloc` feature to be enabled."
17}
18
19#[cfg(feature = "std")]
20extern crate std;
21
22#[cfg(feature = "alloc")]
23extern crate alloc;
24
25#[doc(inline)]
26pub use self::{
27    engine::*,
28    error::*,
29    pipes::prelude::*,
30    scheduler::Scheduler,
31    sources::{SourceManager, SourceRegistry},
32    traits::*,
33    types::*,
34};
35
36#[macro_use]
37pub(crate) mod macros {
38    #[macro_use]
39    pub(crate) mod seal;
40}
41
42pub mod engine;
43pub mod error;
44pub mod pipes;
45pub mod scheduler;
46pub mod sources;
47
48mod traits {
49    //! this module provides common traits and interfaces for the `acme` engine
50    #[doc(inline)]
51    pub use self::prelude::*;
52
53    mod engine;
54
55    mod prelude {
56        #[doc(inline)]
57        pub use super::engine::*;
58    }
59}
60
61mod types {
62    //! this module implements various types used for the `acme` engine
63    #[doc(inline)]
64    pub use self::prelude::*;
65
66    mod aliases;
67
68    mod prelude {
69        #[doc(inline)]
70        pub use super::aliases::*;
71    }
72}
73
74#[doc(hidden)]
75pub mod prelude {
76    #[doc(no_inline)]
77    pub use crate::engine::*;
78    #[doc(no_inline)]
79    pub use crate::pipes::prelude::*;
80    #[doc(no_inline)]
81    pub use crate::scheduler::*;
82    #[doc(no_inline)]
83    pub use crate::sources::prelude::*;
84    #[doc(no_inline)]
85    pub use crate::traits::*;
86    #[doc(no_inline)]
87    pub use crate::types::*;
88}