acme_core/
lib.rs

1/*
2    Appellation: acme-core <library>
3    Contrib: @FL03
4*/
5//! The _core_ modules of the `acme` library; these modules are re-exported at the top-level of
6//! the library for convenience.
7#![allow(
8    clippy::missing_safety_doc,
9    clippy::module_inception,
10    clippy::needless_doctest_main,
11    clippy::upper_case_acronyms
12)]
13#![cfg_attr(not(feature = "std"), no_std)]
14
15#[cfg(feature = "std")]
16extern crate std;
17
18#[cfg(feature = "alloc")]
19extern crate alloc;
20
21#[doc(inline)]
22pub use self::{
23    comp::prelude::*, consts::*, error::*, events::prelude::*, traits::*, types::*, utils::*,
24};
25
26#[macro_use]
27pub(crate) mod macros {
28    #[macro_use]
29    pub(crate) mod seal;
30}
31
32pub mod comp;
33pub mod error;
34pub mod events;
35
36pub mod consts {
37    #[doc(hidden)]
38    pub const VERSION: &str = env!("CARGO_PKG_VERSION");
39}
40
41pub mod traits {
42    //! this module provides common traits and interfaces for the `acme` engine
43    #[doc(inline)]
44    pub use self::prelude::*;
45
46    mod context;
47    mod handle;
48
49    mod prelude {
50        #[doc(inline)]
51        pub use super::context::*;
52        #[doc(inline)]
53        pub use super::handle::*;
54    }
55}
56
57pub mod types {
58    //! this module implements various types used for the `acme` engine
59    #[doc(inline)]
60    pub use self::prelude::*;
61
62    mod container;
63
64    mod prelude {
65        #[doc(inline)]
66        pub use super::container::*;
67    }
68}
69
70pub mod utils {
71    //! this module defines additional utilities for the `acme` engine
72    #[doc(inline)]
73    pub use self::prelude::*;
74
75    mod generate;
76
77    mod prelude {
78        #[doc(inline)]
79        pub use super::generate::*;
80    }
81}
82
83pub mod prelude {
84    #[doc(no_inline)]
85    pub use crate::comp::prelude::*;
86    #[doc(no_inline)]
87    pub use crate::consts::*;
88    #[doc(no_inline)]
89    pub use crate::events::prelude::*;
90    #[doc(no_inline)]
91    pub use crate::traits::*;
92    #[doc(no_inline)]
93    pub use crate::types::*;
94    #[doc(no_inline)]
95    pub use crate::utils::*;
96}