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, DeadlockError, ErrorCategory, ProviderStreamDeadline,
31 ProviderStreamFailure, ProviderStreamFailureReason, ProviderStreamPhase, VmError,
32};
33pub use handles::{
34 VmAtomicHandle, VmChannelCloseState, VmChannelHandle, VmGenerator, VmJoinHandle, VmRange,
35 VmResourceGuardHandle, VmResourceHandle, VmRngHandle, VmStream, VmStreamCancel,
36 VmSyncPermitHandle, VmTaskHandle, VmVerdictReceipt,
37};
38pub use io_error::{
39 environment_io_error_thrown, io_error_kind_str, io_error_thrown, io_error_value,
40};
41pub use isolate::IsolateValue;
42pub use set::VmSet;
43pub(crate) use storage_json::vm_to_storage_json;
44pub use structural::{
45 compare_values, dedup_values, try_compare_values, value_identity_key,
46 value_structural_hash_key, values_equal, values_identical,
47};
48
49#[cfg(test)]
50mod tests;