Skip to content

Go 通用工具

系统概览

Go 端零外部依赖工具集(internal/util)。错误包装(WrapError/WrapErrorf)、panic 恢复(SafeCall/SafeCallVoid)、PMX 二进制头解析(ParsePMXHeader,UTF-8/UTF-16LE)、SHA-256 哈希。

核心职责

  • errors.goWrapError(op, err) / WrapErrorf(op, msg, err) 错误上下文包装。
  • safecall.goSafeCall[T] 泛型 panic 恢复(传入 fn 被调用函数)、SafeCallVoid(fn)
  • pmx.goParsePMXHeader(UTF-8/UTF-16LE 模型名解码)、PMXMeta
  • hash.goSHA256Hex(s)

对外 API(节选)

  • WrapError(op string, err error) error — 带操作上下文的错误包装。
  • SafeCallVoid(fn func() error) (err error) — panic 兜底调用。
  • ParsePMXHeader(path string) (*PMXMeta, error) — PMX 头部解析。

与其他子系统关系

  • internal/app 全部文件引用(约定 §七);ParsePMXHeadergo-library.md 模型元数据用。

不变量

  • 保持标准库 only,禁止引入第三方依赖(防止拖拽无关依赖进 Go 模块)。
  • panic 必须收敛在 SafeCall 内,Wails 绑定方法不允许 panic 逃逸。

验证入口

  • 测试:internal/util/*_test.go
  • 命令:go test ./internal/util/