Skip to main content

cljrs_value/
lib.rs

1#![allow(clippy::arc_with_non_send_sync)]
2pub mod clone;
3pub mod collections;
4pub mod error;
5pub mod hash;
6pub mod intern;
7pub mod jit_hooks;
8pub mod keyword;
9pub mod native_object;
10#[cfg(not(feature = "no-gc"))]
11pub mod publish;
12pub mod regex;
13pub mod resource;
14pub mod shared;
15pub mod symbol;
16pub mod types;
17pub mod value;
18
19/// `no-gc` builds keep their `StaticCtxGuard` discipline; the publish barrier
20/// is an identity function there.
21#[cfg(feature = "no-gc")]
22pub mod publish {
23    pub fn publish_value(v: crate::Value) -> crate::Value {
24        v
25    }
26}
27
28pub use collections::{
29    PersistentArrayMap, PersistentHashMap, PersistentHashSet, PersistentList, PersistentQueue,
30    PersistentVector, SortedMap, SortedSet,
31};
32pub use error::{ExceptionInfo, ValueError, ValueResult};
33pub use hash::ClojureHash;
34pub use intern::{intern_keyword, intern_symbol};
35pub use jit_hooks::set_var_rebind_hook;
36pub use keyword::Keyword;
37pub use native_object::{NativeObject, NativeObjectBox, gc_native_object};
38pub use resource::{Resource, ResourceHandle};
39pub use shared::{PromoteError, SharedAtom, SharedValue, demote, promote};
40pub use symbol::Symbol;
41pub use types::{
42    Agent, Arity, Atom, BoundFn, CljxCons, CljxFn, CljxFnArity, CljxFuture, CljxPromise, Delay,
43    DelayState, FutureState, LazySeq, MultiFn, Namespace, NativeFn, NativeFnFunc, NativeFnPtr,
44    Protocol, ProtocolFn, ProtocolMethod, Thunk, Var, Volatile, bump_protocol_generation,
45    protocol_generation,
46};
47pub use value::{MapValue, ObjectArray, SetValue, TypeInstance, Value};