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