Skip to main content

Module modules

Module modules 

Source
Expand description

Native Module System

Provides a registry for native modules that can be called from JavaScript through the bridge layer. Modules register methods that can be invoked either synchronously or asynchronously.

Design:

  • Modules implement the NativeModule trait
  • The ModuleRegistry holds all registered modules
  • Methods are invoked by name through the bridge
  • Thread safety: registry is Send + Sync, modules must be Send + Sync

Example:

struct StorageModule;
impl NativeModule for StorageModule {
    fn name(&self) -> &str { "Storage" }
    fn methods(&self) -> Vec<MethodDescriptor> {
        vec![
            MethodDescriptor::sync("getItem", "Get a stored value"),
            MethodDescriptor::async_method("setItem", "Store a value"),
        ]
    }
    fn invoke_sync(&self, method: &str, args: &[ModuleArg]) -> ModuleResult { ... }
}

Structs§

MethodDescriptor
Describes a method exposed by a native module.
ModuleRegistry
Thread-safe registry of native modules.

Enums§

ModuleArg
Arguments passed to module method invocations.
ModuleError
Errors from module operations.
ModuleValue
Result from a module method invocation.

Traits§

NativeModule
Trait that all native modules must implement.

Type Aliases§

ModuleResult
Result type for module method calls.