Expand description
Shared inventory + manifest plumbing for the wolfram-export-* runtime
crates.
Hosts the ExportEntry enum (the unified inventory entry type used by
all three modes — Native, Wstp, Wxf), the inventory::collect! declaration,
and the exported_library_functions_association builder that produces
the WL Association[name -> LibraryFunctionLoad[...], ...] Expr used by
both the WSTP-mode generate_loader! runtime path and the WXF-mode
build-time manifest path.
The two transports share this one Expr-producing function — only the wire format at the boundary differs.
Re-exports§
pub use inventory;
Structs§
- Function
Entry - Serializable description of one exported function, embedded in every dylib
via
__wolfram_manifest_data__. Defined here so the CLI can share the type and deserialize directly with [wolfram_serialize::deserialize].
Enums§
- Export
Entry - Inventory entry for one
#[export]-marked function. - Export
Kind - Which export transport a function uses. Mirrors the three
#[export]modes and thekindstring stored inFunctionEntry.
Functions§
- __
wolfram_ manifest__ - C-ABI symbol that the
cargo wolfram-manifestsubcommand calls viadlopento extract the library’s exported-function manifest at build time, without running a WSTP loop. - __
wolfram_ manifest_ data__ - C-ABI symbol returning WXF-serialized
Vec<FunctionEntry>for every exported function. Consumed bycargo wl buildvialibloading— no WL kernel needed. - caller_
binding - The
Set[Caller, ...]prelude binding for one export kind. Emitted (only when referenced — seewith_callers) as part of theWith[{...}, <|...|>]loader so the per-functionCaller[LibraryFunctionLoad[...]]rules fromlibrary_function_ruleresolve. - export_
key - Compute the association key for an exported function:
"namespace::name"when a namespace is supplied, otherwise the barename. - exported_
library_ functions_ association - Returns an
Associationcontaining the names andLibraryFunctionLoadcalls for every#[export(..)]-marked function in this library. - library_
function_ load - Build
Caller[LibraryFunctionLoad[lib, name, <args>, <ret>]]for one exported function. - library_
function_ rule - One
key -> Caller[LibraryFunctionLoad[...]]association rule.keyis the final association key (seeexport_key);nameis the exported C symbol. - with_
callers - Wrap a finished association in
With[bindings, assoc], emitting ONLY the caller prelude bindings (NativeCaller/WSTPCaller/WXFCaller) actually referenced by the rules, followed byextra(e.g. the CLI’slibN = FileNameJoin[...]path bindings). A loader with no WXF functions, for instance, omits theWXFCallerbinding entirely.