Skip to main content

oxide_core/
lib.rs

1//! The quickjs-oxide core: 8-byte NaN-boxed values, typed arenas, a value heap
2//! with range allocation and a non-moving mark-sweep collector; register
3//! bytecode and the loop that runs it; the builtins, the host boundary and the
4//! embedder's entries. See `core/README.md`.
5
6#![forbid(unsafe_code)]
7
8pub mod builtins;
9pub mod bytecode;
10mod clock;
11pub mod embed;
12pub mod heap;
13pub mod host;
14pub mod runtime;
15pub mod shape;
16pub mod value;
17pub mod vm;
18
19pub use builtins::agent::ScriptRunner;
20pub use bytecode::{CodeStore, CodeUnit, CodeUnitId, Insn, Opcode, UnitRef, Units};
21pub use embed::{KeyName, NativeCx, PropertyDescriptor};
22pub use heap::atom::{KeyKind, PropertyKey};
23pub use heap::gc::{Handle, HeapLimits, RootMark};
24pub use heap::object::ObjectKind;
25pub use heap::report::MemoryReport;
26pub use heap::{AtomMode, BytecodeTemplate, Heap, HeapError};
27pub use runtime::{Intrinsic, Realm, Runtime, RuntimeOptions, ThrownSummary};
28pub use shape::PropertyFlags;
29pub use value::{
30    BigIntId, BytecodeId, Kind, ObjectId, ScopeId, ShapeId, StringId, SymbolId, ValidityCellId,
31    Value,
32};
33pub use vm::{ErrorKind, Output, Throw};