eryon_core/
lib.rs

1/*
2    Appellation: eryon-core <library>
3    Contrib: @FL03
4*/
5//! This module implements core primitives and utilities used throughout the ecosystem.
6#![cfg_attr(not(feature = "std"), no_std)]
7
8#[cfg(feature = "alloc")]
9extern crate alloc;
10
11#[doc(inline)]
12pub use eryon_nrt as nrt;
13#[doc(hidden)]
14pub use rstm;
15
16#[allow(unused_imports)]
17#[doc(inline)]
18pub use self::{
19    error::{Error, Result},
20    ops::prelude::*,
21    time::prelude::*,
22    traits::prelude::*,
23    types::prelude::*,
24    utils::prelude::*,
25};
26
27#[macro_use]
28pub(crate) mod macros;
29#[allow(unused)]
30#[doc(hidden)]
31#[macro_use]
32pub(crate) mod seal;
33
34pub mod crypto;
35pub mod error;
36pub mod identity;
37pub mod time;
38
39pub mod ops {
40    #[doc(inline)]
41    pub use self::prelude::*;
42
43    pub mod difference;
44    pub mod execute;
45    pub mod increment;
46    pub mod modulo;
47    pub mod transform;
48
49    pub(crate) mod prelude {
50        pub use super::difference::*;
51        pub use super::execute::*;
52        pub use super::increment::*;
53        pub use super::modulo::*;
54        pub use super::transform::*;
55    }
56}
57
58pub mod traits {
59    #[doc(inline)]
60    pub use self::prelude::*;
61
62    pub(crate) mod scalar;
63    #[cfg(feature = "rand")]
64    pub(crate) mod shuffle;
65    pub(crate) mod symbolic;
66
67    #[allow(unused_imports)]
68    pub(crate) mod prelude {
69        pub use super::scalar::*;
70        #[cfg(feature = "rand")]
71        pub use super::shuffle::*;
72        pub use super::symbolic::*;
73    }
74}
75
76pub mod types {
77    #[doc(inline)]
78    pub use self::prelude::*;
79
80    pub mod power;
81    pub mod rules;
82
83    pub(crate) mod prelude {
84        #[doc(inline)]
85        pub use super::power::*;
86        #[doc(inline)]
87        pub use super::rules::*;
88    }
89}
90
91pub mod utils {
92    #[doc(inline)]
93    pub use self::prelude::*;
94
95    pub mod area;
96
97    pub(crate) mod prelude {
98        pub use super::area::*;
99    }
100}
101
102#[allow(unused_imports)]
103pub mod prelude {
104    pub use eryon_nrt::prelude::*;
105    pub use rstm::prelude::{Direction, Head, State, Tail};
106
107    pub use crate::crypto::prelude::*;
108    pub use crate::error::{Error, Result};
109    pub use crate::identity::prelude::*;
110    pub use crate::ops::prelude::*;
111    pub use crate::traits::prelude::*;
112    #[doc(no_inline)]
113    pub use crate::types::prelude::*;
114    pub use crate::utils::prelude::*;
115}