luna-utils
luna-utils 是面向 Luna-Flow 项目的小型工具包。它提供数组辅助函数和比较辅助函数,其数值约束来自 luna-generic 的 trait,因此适用于任何实现了所需结构的类型。
公开函数
本包只导出函数,不定义自己的类型或 trait。
| 函数 | 约束 | 行为 |
|---|---|---|
arr_sum | AddMonoid | 元素之和;空数组返回 zero()。 |
arr_abs_sum | Num + Compare | 元素绝对值之和。 |
zero_arr | AddMonoid | 长度为 n、以 zero() 填充的数组。 |
arr_max, arr_min | Compare | 最大或最小元素;空数组时 panic。 |
find | Eq | 某个值首次出现的下标,未找到时为 None。 |
reverse | 无 | 元素逆序排列的新数组。 |
reverse_inplace | 无 | 原地反转数组。 |
same | Eq | 所有元素是否都等于第一个元素;空数组时 panic。 |
same_to | Eq | 所有元素是否都等于给定的样本值。 |
map_same, map_same_to | 结果类型满足 Eq | 对映射后的数组应用 same 与 same_to。 |
clamp | Compare | 将值限制在从 min 到 max 的闭区间内。 |
is_between | Compare | 值是否位于从 min 到 max 的闭区间内。 |
接口文件 pkg.generated.mbti 是签名的权威清单,自动生成的 API 文档见 mooncakes.io。
模块
包 Luna-Flow/luna-utils 有两个源文件,本手册将它们作为两个模块来说明:
array_utils位于src/array_utils.mbt,包含作用于数组的函数:求和、最值、查找、反转和一致性检查。参见其 API 参考、设计说明和教程。comparison位于src/comparison.mbt,包含将值与闭区间比较的clamp和is_between。参见其 API 参考、设计说明和教程。
参与贡献
代码风格、命名、提交与审查规则见贡献规范。