1#![allow(improper_ctypes)]
2#![cfg_attr(not(feature = "std"), no_std)]
3
4extern crate alloc;
5
6mod lazy;
7pub mod ast;
8pub mod builtins;
9pub mod bytecode;
10pub mod config;
11#[cfg(feature = "std")]
12pub mod embed;
13pub mod error;
14#[cfg(feature = "std")]
15pub mod ffi;
16pub mod jit;
17pub mod lexer;
18pub mod modules;
19pub mod number;
20#[cfg(all(feature = "packages", not(target_arch = "wasm32")))]
21pub mod packages;
22pub mod parser;
23pub mod typechecker;
24pub mod vm;
25#[cfg(target_arch = "wasm32")]
26pub mod wasm;
27pub use number::{LustFloat, LustInt};
28pub use ast::{Expr, Item, Span, Stmt, Type};
29pub use bytecode::{Chunk, Compiler, Function, Instruction, Value};
30pub use config::{ConfigError, LustConfig};
31#[cfg(feature = "std")]
32pub use embed::{
33 EmbeddedBuilder, EmbeddedProgram, EnumInstance, FromLustValue, FunctionArgs, IntoLustValue,
34 StructInstance,
35};
36pub use error::{LustError, Result};
37pub use jit::{JitCompiler, JitState};
38pub use lexer::{Lexer, Token, TokenKind};
39pub use modules::{LoadedModule, ModuleImports, ModuleLoader, Program};
40#[cfg(all(feature = "packages", not(target_arch = "wasm32")))]
41pub use packages::{
42 build_local_module, collect_stub_files, load_local_module, stub_files_from_exports,
43 write_stub_files, LoadedRustModule, LocalBuildOutput, LocalModuleError, PackageKind,
44 PackageManager, PackageSpecifier, StubFile,
45};
46pub use parser::Parser;
47pub use typechecker::{FunctionSignature, TypeChecker, TypeCollection};
48pub use vm::{NativeExport, NativeExportParam, VM};