Skip to main content

sim_lib_sequence/
lib.rs

1#![forbid(unsafe_code)]
2#![deny(missing_docs)]
3//! Sequence behavior for the SIM runtime: lazy, persistent, and transducers.
4//!
5//! The kernel defines the operation and object contracts; this crate supplies
6//! the concrete sequence organ (lazy sequences, persistent vectors/maps/sets,
7//! and transducer pipelines).
8
9mod claims;
10mod lazy;
11mod persistent;
12mod profile;
13mod runtime;
14mod transducer;
15
16pub use claims::{
17    publish_sequence_organ_claims, publish_sequence_organ_claims_for_lib, sequence_filter_op_key,
18    sequence_for_op_key, sequence_lazy_op_key, sequence_map_op_key, sequence_op_keys,
19    sequence_organ_symbol, sequence_persistent_op_key, sequence_reduce_op_key,
20    sequence_transduce_op_key,
21};
22pub use lazy::{
23    LazySequence, SequenceProducer, force_sequence_bounded, lazy_sequence_value,
24    sequence_from_list_value,
25};
26pub use persistent::{
27    PersistentSet, PersistentVector, persistent_list, persistent_list_push, persistent_map,
28    persistent_map_assoc, persistent_set, persistent_set_insert, persistent_vector,
29    persistent_vector_push,
30};
31pub use profile::{ProfileSequence, sequence_for_profile};
32pub use runtime::{SeqOp, SequenceFunction, SequenceLib, install_sequence_lib, sequence_exports};
33pub use transducer::{
34    TransducerPipeline, TransducerStep, filter_sequence, for_each_sequence, map_sequence,
35    reduce_sequence, transduce,
36};
37
38/// Cookbook recipes for this lib, embedded at build time.
39pub static RECIPES: sim_cookbook::EmbeddedDir =
40    include!(concat!(env!("OUT_DIR"), "/cookbook_recipes.rs"));
41
42#[cfg(test)]
43mod tests;