Macro arret_runtime::define_rust_module[][src]

macro_rules! define_rust_module {
    ($exports_sym:ident, { $( $export_name:expr => $desc_name:ident ),* }) => { ... };
}

Defines a new Arret module implemented at Rust

Each Arret package can have an optional Rust module accessible as (import [package-name rust]). These are loaded both at compile-time to support constant evaluation and linked against compiled programs.

The first argument should be an identifier in the form of ARRET_{PACKAGE_NAME}_RUST_EXPORTS where {PACKAGE_NAME} is the uppercased name of the package. For example, the package stdlib uses ARRET_STDLIB_RUST_EXPORTS. This must be unique to prevent symbol conflicts when loading Rust modules.

The second argument is a mapping of export names to Rust functions. These are defined using the rfi_derive::rust_fun attribute macro.