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 transducer;
14
15pub use claims::{
16    publish_sequence_organ_claims, publish_sequence_organ_claims_for_lib, sequence_filter_op_key,
17    sequence_for_op_key, sequence_lazy_op_key, sequence_map_op_key, sequence_op_keys,
18    sequence_organ_symbol, sequence_persistent_op_key, sequence_reduce_op_key,
19    sequence_transduce_op_key,
20};
21pub use lazy::{
22    LazySequence, SequenceProducer, force_sequence_bounded, lazy_sequence_value,
23    sequence_from_list_value,
24};
25pub use persistent::{
26    PersistentSet, PersistentVector, persistent_list, persistent_list_push, persistent_map,
27    persistent_map_assoc, persistent_set, persistent_set_insert, persistent_vector,
28    persistent_vector_push,
29};
30pub use profile::{ProfileSequence, sequence_for_profile};
31pub use transducer::{
32    TransducerPipeline, TransducerStep, filter_sequence, for_each_sequence, map_sequence,
33    reduce_sequence, transduce,
34};
35
36#[cfg(test)]
37mod tests;