#![allow(
clippy::module_inception,
clippy::new_ret_no_self,
clippy::needless_doctest_main,
clippy::should_implement_trait
)]
#![cfg_attr(not(feature = "std"), no_std)]
#![cfg_attr(feature = "nightly", feature(allocator_api))]
#[cfg(feature = "alloc")]
extern crate alloc;
extern crate rstm_core as rstm;
#[macro_use]
mod macros {
#[macro_use]
pub(crate) mod seal;
}
#[doc(inline)]
pub use self::{
error::*,
rule::{LearnedRule, Rule},
traits::*,
types::*,
};
#[cfg(feature = "alloc")]
#[doc(inline)]
pub use self::program::*;
#[cfg(feature = "std")]
#[doc(inline)]
pub use self::rule_map::RuleMap;
pub mod error;
pub(crate) mod rule;
#[cfg(feature = "alloc")]
pub mod program;
#[cfg(feature = "std")]
pub mod rule_map;
pub mod traits {
#[doc(inline)]
pub use self::prelude::*;
mod instruction;
mod rulespace;
mod prelude {
#[doc(inline)]
pub use super::instruction::*;
#[doc(inline)]
pub use super::rulespace::*;
}
}
mod types {
#[doc(inline)]
pub use self::prelude::*;
mod prelude {
#[doc(inline)]
pub use super::aliases::*;
}
mod aliases {
#[cfg(feature = "std")]
use rstm_core::{Head, Tail};
#[cfg(feature = "alloc")]
pub(crate) type RuleVec<Q, S> = alloc::vec::Vec<crate::Rule<Q, S>>;
#[cfg(feature = "std")]
pub type HeadMap<Q = usize, S = usize> = std::collections::HashMap<Head<Q, S>, Tail<Q, S>>;
}
}
#[doc(hidden)]
pub mod prelude {
#[doc(no_inline)]
pub use crate::rule::Rule;
#[doc(no_inline)]
pub use crate::traits::*;
#[doc(no_inline)]
pub use crate::types::*;
#[doc(no_inline)]
#[cfg(feature = "alloc")]
pub use crate::program::Program;
#[doc(no_inline)]
#[cfg(feature = "std")]
pub use crate::rule_map::RuleMap;
}