Skip to main content

sim_run_loaders/
lib.rs

1#![deny(unsafe_code)]
2#![deny(missing_docs)]
3//! Low-level loader plugins for the SIM bootloader.
4//!
5//! The crate owns loader mechanisms that the `sim` binary composes behind
6//! feature gates. It deliberately depends on kernel and codec contracts rather
7//! than the SDK umbrella.
8//!
9//! Native and wasm loaders both surface `site` exports as opaque registry
10//! values keyed by placement symbols. The kernel stores the value and export
11//! record; server and agent libraries give the value `EvalSite` behavior.
12
13#[cfg(all(feature = "dynamic-native", not(target_arch = "wasm32")))]
14mod manifest;
15#[cfg(all(feature = "dynamic-native", not(target_arch = "wasm32")))]
16mod native;
17#[cfg(all(feature = "dynamic-native", not(target_arch = "wasm32")))]
18mod native_class;
19#[cfg(all(feature = "dynamic-native", not(target_arch = "wasm32")))]
20mod native_macro;
21#[cfg(all(feature = "dynamic-native", not(target_arch = "wasm32")))]
22mod native_number;
23#[cfg(all(feature = "dynamic-native", not(target_arch = "wasm32")))]
24mod native_site;
25#[cfg(all(feature = "dynamic-native", not(target_arch = "wasm32")))]
26mod shape;
27#[cfg(all(feature = "dynamic-native", not(target_arch = "wasm32")))]
28mod shared;
29#[cfg(any(feature = "wasm", test))]
30mod wasm;
31
32#[cfg(all(feature = "dynamic-native", not(target_arch = "wasm32")))]
33pub use native::{
34    NativeDylibLoader, NativeGuest, encode_native_manifest_response, validate_native_abi_header,
35};
36#[cfg(all(feature = "dynamic-native", not(target_arch = "wasm32")))]
37pub use native_macro::NativeAbiMacro;
38#[cfg(any(feature = "wasm", test))]
39pub use wasm::{WasmLoader, wasm_load_capability};