eryon_actors/
lib.rs

1/*
2    Appellation: eryon-actors <library>
3    Contrib: @FL03
4*/
5//! # eryon-actors
6//!
7//! This crate works to establish a sound foundation for computational entities within the
8//! `eryon` framework.
9//!
10//! ## Features
11//!
12//! - `neural`: enables machine-learning capabilities for actors.
13//!
14#![allow(
15    clippy::missing_saftey_doc,
16    clippy::module_inception,
17    clippy::needless_doctest_main,
18    clippy::should_implement_trait,
19    clippy::upper_case_acronyms
20)]
21#![cfg_attr(not(feature = "std"), no_std)]
22#![cfg_attr(all(feature = "nightly"), feature(allocator_api))]
23#[cfg(feature = "alloc")]
24extern crate alloc;
25
26extern crate concision as cnc;
27extern crate eryon_core as eryon;
28
29pub(crate) use eryon as core;
30pub(crate) use eryon::rstmt::nrt;
31pub(crate) use eryon_mem as mem;
32
33#[doc(inline)]
34pub use eryon_surface as surface;
35
36#[doc(inline)]
37pub use self::{
38    ctx::prelude::*,
39    drivers::prelude::*,
40    engine::prelude::*,
41    error::*,
42    operators::prelude::*,
43    surface::{SurfaceModel, SurfaceNetwork, traits::*},
44    traits::*,
45    types::*,
46    vnode::*,
47};
48
49#[macro_use]
50pub(crate) mod macros {
51    #[macro_use]
52    pub mod seal;
53}
54
55pub mod ctx;
56pub mod drivers;
57pub mod engine;
58pub mod error;
59pub mod operators;
60pub mod vnode;
61
62pub mod traits {
63    //! this module defines the traits of the actors.
64    #[doc(inline)]
65    pub use self::prelude::*;
66
67    pub(crate) mod actor;
68    pub(crate) mod store;
69
70    pub(crate) mod prelude {
71        pub use super::actor::*;
72        pub use super::store::*;
73    }
74}
75
76pub mod types {
77    //! this module contains the various types implemented in-support of the actors
78    #[doc(inline)]
79    pub use self::prelude::*;
80
81    pub(crate) mod hierarchy;
82    pub(crate) mod rulespace;
83    pub(crate) mod snapshot;
84    pub(crate) mod stability;
85    pub(crate) mod vstats;
86
87    pub(crate) mod prelude {
88        pub use super::hierarchy::*;
89        pub use super::rulespace::*;
90        pub use super::snapshot::*;
91        pub use super::stability::*;
92        pub use super::vstats::*;
93    }
94}
95
96#[doc(hidden)]
97pub mod prelude {
98    pub use eryon_surface::prelude::*;
99
100    pub use crate::vnode::*;
101
102    pub use crate::drivers::prelude::*;
103    pub use crate::engine::prelude::*;
104    pub use crate::operators::prelude::*;
105    pub use crate::traits::*;
106    pub use crate::types::*;
107}