Yog inter-mod communication — proc-macros for cross-mod function calls.
Export (manual registration, auto-generated binding symbol)
use yog_api::{yog_export, Registry};
#[yog_export]
pub fn register_pipe(api: *const yog_api::YogApi, json: *const std::ffi::c_char) {
// ...
}
fn register(registry: &mut Registry) {
// Manual export registration (loader scanning coming later)
registry.interop().export("register_pipe", register_pipe as *const std::ffi::c_void);
}
Import (auto-wired by loader)
yog_api::import! {
from "yog-pipes" {
fn register_pipe(api: *const yog_api::YogApi, json: *const std::ffi::c_char);
}
}
// Use like a normal function — loader wires it at init time
register_pipe(api, json_ptr);