1#![allow(
10 clippy::missing_saftey_doc,
11 clippy::module_inception,
12 clippy::needless_doctest_main,
13 clippy::should_implement_trait,
14 clippy::upper_case_acronyms
15)]
16#![cfg_attr(not(feature = "std"), no_std)]
17#![cfg_attr(all(feature = "nightly"), feature(allocator_api))]
18
19#[cfg(feature = "alloc")]
20extern crate alloc;
21
22#[cfg(feature = "rand")]
23pub use rand;
24#[cfg(feature = "rand")]
25pub use rand_distr;
26pub use rstmt;
28
29#[doc(inline)]
30pub use self::{
31 error::{Error, Result},
32 ops::prelude::*,
33 state::{RawState, State},
34 traits::prelude::*,
35 types::prelude::*,
36 utils::prelude::*,
37};
38
39#[macro_use]
40pub(crate) mod macros {
41 #[macro_use]
42 pub mod ruleset;
43 #[macro_use]
44 pub mod seal;
45}
46
47pub mod error;
49pub mod state;
50
51pub mod ops {
52 #[doc(inline)]
54 pub use self::prelude::*;
55
56 pub mod difference;
57 pub mod execute;
58 pub mod increment;
59 pub mod transform;
60
61 pub(crate) mod prelude {
62 #[doc(inline)]
63 pub use super::difference::*;
64 #[doc(inline)]
65 pub use super::execute::*;
66 #[doc(inline)]
67 pub use super::increment::*;
68 #[doc(inline)]
69 pub use super::transform::*;
70 }
71}
72
73pub mod traits {
74 #[doc(inline)]
76 pub use self::prelude::*;
77
78 pub(crate) mod scalar;
79 #[cfg(feature = "rand")]
80 pub(crate) mod shuffle;
81 pub(crate) mod symbolic;
82
83 #[allow(unused_imports)]
84 pub(crate) mod prelude {
85 #[doc(inline)]
86 pub use super::scalar::*;
87 #[doc(inline)]
88 #[cfg(feature = "rand")]
89 pub use super::shuffle::*;
90 #[doc(inline)]
91 pub use super::symbolic::*;
92 }
93}
94
95pub mod types {
96 #[doc(inline)]
98 pub use self::prelude::*;
99
100 mod direction;
101 mod head;
102 mod tail;
103
104 mod power;
105 mod rules;
106
107 pub(crate) mod prelude {
108 #[doc(inline)]
109 pub use super::direction::*;
110 #[doc(inline)]
111 pub use super::head::*;
112 #[doc(inline)]
113 pub use super::power::*;
114 #[doc(inline)]
115 pub use super::rules::*;
116 #[doc(inline)]
117 pub use super::tail::*;
118 }
119}
120
121pub mod utils {
122 #[doc(inline)]
123 pub use self::prelude::*;
124
125 pub mod area;
126
127 pub(crate) mod prelude {
128 pub use super::area::*;
129 }
130}
131
132#[allow(unused_imports)]
133pub mod prelude {
134 pub use crate::state::prelude::*;
136
137 pub use crate::ops::prelude::*;
138 pub use crate::traits::prelude::*;
139 #[doc(no_inline)]
140 pub use crate::types::prelude::*;
141 pub use crate::utils::prelude::*;
142}