Skip to main content

load_rules

Function load_rules 

Source
pub fn load_rules(rules_dir: &Path) -> Result<Vec<JsonValue>, CliError>
Expand description

加载规则目录,合并 transform 列表

§确定性加载(P0-2 修复)

file_name() 字典序排序后加载,消除 fs::read_dir 顺序差异。

§支持的文件格式

每个 .json 文件可以是以下三种格式之一:

  1. {"transform": [...]}{"transforms": [...]} — 提取数组
  2. [{...}, {...}] — 顶层数组,每项是一条 transform
  3. {...} — 单条 transform 对象

§保留数据文件排除

文件名恰好为 payload.json(大小写不敏感)的文件被当作初始输入数据而非规则, 不参与加载。若用户在规则目录内放置初始 payload,其 {} 通常无 type 字段, 会被误当成规则并触发 missing field: type(见 parse_initial_payload 与教程约定)。

§错误

  • RulesDirNotFound:目录不存在
  • NoRulesFound:目录中无 .json 文件
  • Io:读取文件失败
  • Json:JSON 解析失败