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 persistent;
13mod profile;
14mod runtime;
15mod runtime_iter;
16mod transducer;
17
18pub use claims::{
19    publish_sequence_organ_claims, publish_sequence_organ_claims_for_lib,
20    sequence_declared_op_keys, sequence_filter_op_key, sequence_for_op_key, sequence_lazy_op_key,
21    sequence_live_ops, sequence_map_op_key, sequence_op_keys, sequence_organ_symbol,
22    sequence_persistent_op_key, sequence_reduce_op_key, sequence_transduce_op_key,
23};
24pub use lazy::{
25    LazySequence, SequenceProducer, force_sequence_bounded, lazy_sequence_value,
26    sequence_from_list_value,
27};
28pub use persistent::{
29    PersistentSet, PersistentVector, persistent_list, persistent_list_push, persistent_map,
30    persistent_map_assoc, persistent_set, persistent_set_insert, persistent_vector,
31    persistent_vector_push,
32};
33pub use profile::{ProfileSequence, sequence_for_profile};
34pub use runtime::{
35    SeqOp, SequenceFunction, SequenceLib, install_sequence_lib, manifest_name, sequence_exports,
36};
37pub use runtime_iter::{
38    RuntimeIndexLookup, RuntimeIndexSource, runtime_index_lookup_sequence, runtime_index_sequence,
39    runtime_index_values,
40};
41pub use transducer::{
42    TransducerPipeline, TransducerStep, filter_sequence, for_each_sequence, map_sequence,
43    reduce_sequence, transduce,
44};
45
46/// Cookbook recipes for this lib, embedded at build time.
47pub static RECIPES: sim_cookbook::EmbeddedDir =
48    include!(concat!(env!("OUT_DIR"), "/cookbook_recipes.rs"));
49
50#[cfg(test)]
51mod tests;