1mod build;
2mod core;
3mod diff;
4mod env;
5mod error;
6mod handles;
7mod io_error;
8mod isolate;
9pub(crate) mod recursion;
10mod set;
11mod storage_json;
12mod structural;
13
14pub type VmMutex<T> = parking_lot::Mutex<T>;
15
16pub use build::{DictRetain, VmDictExt};
17pub use core::{
18 byte_offset_to_char_index, char_range_to_byte_range, char_to_byte_offset, intern_key,
19 string_char_count, struct_fields_to_map, DictMap, HarnStr, StructInstanceData, StructLayout,
20 VmAsyncBuiltinFn, VmBuiltinFn, VmBuiltinRefId, VmEnumVariant, VmValue,
21};
22pub use diff::{diff_values, render_diff, repr, DifferenceKind, ValueDifference};
23pub(crate) use env::Binding;
24pub use env::{
25 closest_match, LazyPipelineCallable, LazyVmCallable, ModuleFunctionRegistry, ModuleState,
26 VmCallable, VmClosure, VmEnv,
27};
28pub use error::{
29 categorized_error, classify_error_message, error_to_category, ArgTypeMismatchError,
30 ArityExpect, ArityMismatchError, BindingTypeMismatchError, DeadlockError, ErrorCategory,
31 ProviderStreamDeadline, ProviderStreamFailure, ProviderStreamFailureReason,
32 ProviderStreamPhase, VmError,
33};
34pub use handles::{
35 VmAtomicHandle, VmChannelCloseState, VmChannelHandle, VmGenerator, VmJoinHandle, VmRange,
36 VmResourceGuardHandle, VmResourceHandle, VmRngHandle, VmStream, VmStreamCancel,
37 VmSyncPermitHandle, VmTaskHandle, VmVerdictReceipt,
38};
39pub use io_error::{
40 environment_io_error_thrown, io_error_kind_str, io_error_thrown, io_error_value,
41};
42pub use isolate::IsolateValue;
43pub use set::VmSet;
44pub(crate) use storage_json::vm_to_storage_json;
45pub use structural::{
46 compare_values, dedup_values, try_compare_values, value_identity_key,
47 value_structural_hash_key, values_equal, values_identical,
48};
49
50#[cfg(test)]
51mod tests;