# units-converter

[English](README.md) | **简体中文**

`units-converter` 是一个基于
[`FrozenLemonTee/LunarUnits`](https://github.com/FrozenLemonTee/LunarUnits)
的小型 MoonBit 单位换算 CLI，通过 `uc` 命令换算带单位的数量表达式。

## 用法

开发阶段可以通过 `moon` 运行：

```bash
moon run cmd/main -- "9.8 m/s^2" "ft/s^2"
moon run cmd/main -- "60 km/h" "m/s"
moon run cmd/main -- "1 kWh" "J"
moon run cmd/main -- "3 m" "s"
```

子命令：

```bash
moon run cmd/main -- parse "9.8 m/s^2"
moon run cmd/main -- parse-unit "kg*m/s^2"
moon run cmd/main -- inspect N
```

输出格式：

```bash
moon run cmd/main -- --format si "9.8 m/s^2" "ft/s^2"
moon run cmd/main -- --format latex "9.8 m/s^2" "ft/s^2"
```

帮助：

```bash
moon run cmd/main -- --help
moon run cmd/main -- parse --help
```

## 为什么使用 LunarUnits

这个 CLI 不维护自己的单位表或换算规则，而是委托 LunarUnits 完成：

- 解析数量和单位表达式；
- 通过预置 catalog 解析单位符号；
- 在换算前检查量纲兼容性；
- 格式化数量和单位。

因此，`3 m` 到 `s` 这类非法换算会被 LunarUnits 的同一套量纲模型拒绝。

## 开发

```bash
moon test
moon info
moon fmt
```
