tree-mumu 0.1.0-rc.2

Creates Linux `tree`-style renderings of MuMu values
Documentation
// src/lib.rs
//
// tree-mumu plugin for Lava/MuMu.
// This file exposes the plugin entry point and wires public registrations.

use std::ffi::c_void;
use mumu::parser::interpreter::Interpreter;

// Public share modules (with their own internal registries/utilities).
pub mod share;

// User-visible registration surface.
mod register;

fn verbose(interp: &Interpreter) -> bool {
    interp.is_verbose() || std::env::var_os("LAVA_VERBOSE").is_some()
}

#[export_name = "Cargo_lock"]
pub unsafe extern "C" fn cargo_lock(interp_ptr: *mut c_void, _extra: *const c_void) -> i32 {
    if interp_ptr.is_null() {
        return 1;
    }
    let interp = &mut *(interp_ptr as *mut Interpreter);

    if verbose(interp) {
        eprintln!("[tree] bridging tree-mumu plugin …");
    }

    // Register all user-facing functions.
    register::register_all(interp);

    if verbose(interp) {
        eprintln!("[tree] ready");
    }
    0
}