Skip to main content

str_format/
lib.rs

1//! # STR 结构化树资源格式(`.str`)
2//!
3//! 规范见仓库根目录 `STR-FORMAT-PROMPT.md`(唯一真源);
4//! 本实现对应的规范版本见常量 [`SPEC_VERSION`]。
5//!
6//! 本 crate 提供:
7//! - `meta`:`._meta`(TOML)的解析、**归一化**(TOML → 规范 JSON,键序/表序固定)与**保注释写回**;
8//! - `bundle`:分支树遍历、懒加载、`id` 索引;
9//! - `validate`:规范第 6 章全部错误码的实现;
10//! - `cmd`:CLI 各子命令。
11//!
12//! ## 校验链路
13//!
14//! `._meta`(TOML)→ 解析 → 归一化为规范 JSON(`meta::Meta::to_json`)→ JSON Schema 2020-12 校验。
15
16pub mod baseline;
17pub mod bundle;
18pub mod cmd;
19pub mod error;
20pub mod meta;
21pub mod meta_edit;
22pub mod util;
23pub mod validate;
24
25/// 本实现对应的 `str` 格式主版本。
26pub const STR_MAJOR: i64 = 1;
27/// 本实现对应的规范版本。
28pub const SPEC_VERSION: &str = "1.11.0";
29/// 内嵌的三种档位 JSON Schema(bundle 未自带 `._schema/` 时的兜底)。
30///
31/// Schema 属**格式规范资产**,唯一真源位于**仓库根** `._schema/`(与 `examples/` 同级)。
32/// 而 crates.io 只打包 crate 目录内的文件、`include_str!` 也无法引用包外路径,
33/// 因此 crate 内 `schema/` 保留一份**派生副本**:由 `bash scripts/sync-schema.sh`
34/// 生成,并由 `tests/schema_sync.rs` 守卫其与真源逐字节一致(漂移即测试失败)。
35pub const EMBEDDED_SCHEMAS: &[(&str, &str)] = &[
36    (
37        "root-meta.schema.json",
38        include_str!("../schema/root-meta.schema.json"),
39    ),
40    (
41        "node-meta.schema.json",
42        include_str!("../schema/node-meta.schema.json"),
43    ),
44    (
45        "branch-meta.schema.json",
46        include_str!("../schema/branch-meta.schema.json"),
47    ),
48];