Skip to main content

sim_lib_lang_clojure/
lib.rs

1#![forbid(unsafe_code)]
2#![deny(missing_docs)]
3//! Clojure surface profile for the SIM runtime.
4//!
5//! The kernel defines the codec, eval-policy, and `Expr` contracts; this crate
6//! is a loadable language profile presenting a Clojure/EDN surface syntax over
7//! the shared `Expr` graph, not a standalone interpreter.
8
9mod codec;
10mod conformance;
11mod data;
12mod matrix_row;
13mod profile;
14mod reader;
15mod recur;
16mod symbols;
17
18pub use codec::{ClojureEdnCodec, ClojureEdnCodecLib};
19pub use conformance::{run_clojure_core_conformance_case, run_clojure_core_matrix_row};
20pub use data::{
21    ClojureReducer, clojure_core_namespace, clojure_persistent_data, clojure_profile_sequence,
22    clojure_transduce, edn_expr_to_value,
23};
24pub use matrix_row::{clojure_core_matrix_row, clojure_core_source_cases};
25pub use profile::{clojure_core_profile, install_clojure_core_profile};
26pub use reader::{decode_clojure_edn_tree, parse_clojure_edn_source};
27pub use recur::{clojure_loop_prompt, clojure_loop_prompt_ref, clojure_recur};
28pub use symbols::{
29    clojure_conformance_test_symbol, clojure_control_fidelity_symbol,
30    clojure_core_namespace_symbol, clojure_core_profile_symbol, clojure_edn_reader_symbol,
31    clojure_lowering_symbol, clojure_namespace_fidelity_symbol, clojure_recur_prompt_symbol,
32    clojure_sequence_fidelity_symbol,
33};
34
35#[cfg(test)]
36mod tests;