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, runtime-indexed,
4//! and transducer-backed collections.
5//!
6//! The kernel defines the operation and object contracts; this crate supplies
7//! the concrete sequence organ (lazy sequences, persistent vectors/maps/sets,
8//! runtime-indexed projection, and transducer pipelines).
9
10mod claims;
11mod lazy;
12mod mutable;
13mod persistent;
14mod profile;
15mod runtime;
16mod runtime_iter;
17mod transducer;
18
19pub use claims::{
20    publish_sequence_organ_claims, publish_sequence_organ_claims_for_lib,
21    sequence_declared_op_keys, sequence_filter_op_key, sequence_for_op_key, sequence_lazy_op_key,
22    sequence_live_ops, sequence_map_op_key, sequence_op_keys, sequence_organ_symbol,
23    sequence_persistent_op_key, sequence_reduce_op_key, sequence_transduce_op_key,
24};
25pub use lazy::{
26    LazySequence, SequenceProducer, force_sequence_bounded, lazy_sequence_value,
27    sequence_from_list_value,
28};
29pub use mutable::{
30    CompactionResult, KeyEquivalence, OrderedSet, OrderedSetIter, OrderedTable, OrderedTableIter,
31    SparseSequence, SparseSequenceError,
32};
33pub use persistent::{
34    PersistentSet, PersistentVector, persistent_list, persistent_list_push, persistent_map,
35    persistent_map_assoc, persistent_set, persistent_set_insert, persistent_vector,
36    persistent_vector_push,
37};
38pub use profile::{ProfileSequence, sequence_for_profile};
39pub use runtime::{
40    SeqOp, SequenceFunction, SequenceLib, install_sequence_lib, manifest_name, sequence_exports,
41};
42pub use runtime_iter::{
43    RuntimeIndexLookup, RuntimeIndexSource, runtime_index_lookup_sequence, runtime_index_sequence,
44    runtime_index_values,
45};
46pub use transducer::{
47    TransducerPipeline, TransducerStep, filter_sequence, for_each_sequence, map_sequence,
48    reduce_sequence, transduce,
49};
50
51/// Cookbook recipes for this lib, embedded at build time.
52pub static RECIPES: sim_cookbook::EmbeddedDir =
53    include!(concat!(env!("OUT_DIR"), "/cookbook_recipes.rs"));
54
55#[cfg(test)]
56mod tests;