import t, c
from stdint import *
import memhub
import lib.core.VLogger as VLogger


# ============================================================
# lib 包入口 - 声明全局 _mbuddy 内存池指针
# ============================================================

# 全局 mbuddy 内存池指针（由 App/main.py 初始化后注入）
# 注意: 使用 MemBuddy 类型而非 MemManager，避免虚函数分派不工作时调用父类 alloc 返回 None
_mbuddy: memhub.MemBuddy | t.CPtr


def InitLib(mb: memhub.MemBuddy | t.CPtr) -> int:
    """初始化 lib 包的全局 _mbuddy 指针，并级联注入到所有子模块。

    Args:
        mb: memhub.MemBuddy 实例指针

    Returns:
        0 表示成功，非 0 表示失败
    """
    if mb is None:
        return 1
    VLogger._mbuddy = mb
    return 0
