pub mod value_chirho;
pub mod heap_chirho;
pub mod stack_chirho;
pub mod prim_chirho;
pub mod eval_chirho;
pub mod ffi_chirho;
pub mod gc_chirho;
pub use value_chirho::{
ValueChirho, ClosureChirho, InfoTableChirho, InfoTagChirho,
CodePtrChirho, DataConTagChirho, HeapAddrChirho,
};
pub use heap_chirho::HeapChirho;
pub use stack_chirho::{StackChirho, FrameChirho, PrimOpKindChirho};
pub use prim_chirho::{apply_prim_binop_chirho, PrimErrorChirho};
pub use eval_chirho::{ArgSourceChirho, MachineChirho, CodeChirho, EvalErrorChirho};
pub use ffi_chirho::{
FfiCallConvChirho, FfiErrorChirho, FfiSafetyChirho, FfiTypeChirho,
FfiValueChirho, ForeignImportChirho, ForeignTableChirho,
};
pub use gc_chirho::{
GcConfigChirho, GcStateChirho, GcStatsChirho,
extract_roots_from_values_chirho, extract_roots_from_stack_chirho,
};
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum ExecutionModeChirho {
BatchChirho,
ScriptChirho,
ReplChirho,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct RuntimePlanChirho {
pub execution_mode_chirho: ExecutionModeChirho,
pub entry_module_chirho: String,
pub incremental_session_chirho: bool,
}
impl RuntimePlanChirho {
pub fn for_module_chirho(
execution_mode_chirho: ExecutionModeChirho,
entry_module_chirho: impl Into<String>,
) -> Self {
let incremental_session_chirho =
matches!(execution_mode_chirho, ExecutionModeChirho::ScriptChirho | ExecutionModeChirho::ReplChirho);
Self {
execution_mode_chirho,
entry_module_chirho: entry_module_chirho.into(),
incremental_session_chirho,
}
}
}