1#[allow(dead_code)]
2pub(crate) mod closed;
3pub(crate) mod contracts;
4pub(crate) mod functions;
5pub(crate) mod json_vals;
6pub(crate) mod lazy_stream;
7pub(crate) mod lists;
8pub(crate) mod port;
9pub(crate) mod recycler;
10pub(crate) mod structs;
11pub(crate) mod transducers;
12
13pub use functions::LambdaMetadataTable;
14
15pub use closed::RootToken;
16pub use closed::RootedSteelVal;
17pub use port::SteelPortRepr;
18
19pub use im_shims::{
20 HashMap, HashMapConsumingIter, HashSet, HashSetConsumingIter, Vector, VectorConsumingIter,
21};
22
23#[cfg(not(feature = "sync"))]
24mod im_shims {
25 use std::hash::RandomState;
26
27 pub type Vector<T> = im_rc::Vector<T>;
28 pub type HashMap<K, V, S = RandomState> = im_rc::HashMap<K, V, S>;
29 pub type HashSet<K, S = RandomState> = im_rc::HashSet<K, S>;
30
31 pub type VectorConsumingIter<T> = im_rc::vector::ConsumingIter<T>;
32 pub type HashSetConsumingIter<T> = im_rc::hashset::ConsumingIter<T>;
33 pub type HashMapConsumingIter<K, V> = im_rc::hashmap::ConsumingIter<(K, V)>;
34}
35
36#[cfg(feature = "sync")]
37mod im_shims {
38 use std::hash::RandomState;
39
40 pub type Vector<T> = im::Vector<T>;
41 pub type HashMap<K, V, S = RandomState> = im::HashMap<K, V, S>;
42 pub type HashSet<K, S = RandomState> = im::HashSet<K, S>;
43
44 pub type VectorConsumingIter<T> = im::vector::ConsumingIter<T>;
45 pub type HashSetConsumingIter<T> = im::hashset::ConsumingIter<T>;
46 pub type HashMapConsumingIter<K, V> = im::hashmap::ConsumingIter<(K, V)>;
47}