#text-format #format #parser #human-readable #data-structures #block-header #nested-blocks-format

nbf

嵌套块格式(NBF)的草案实现,这是一种便于人类表达嵌套或层次化数据的文本格式

5 个版本

0.2.3 2023 年 6 月 2 日
0.2.2 2023 年 6 月 1 日
0.2.1 2023 年 6 月 1 日
0.2.0 2023 年 6 月 1 日
0.1.0 2023 年 6 月 1 日

2203解析器实现

Download history 10/week @ 2024-03-08 5/week @ 2024-03-15 3/week @ 2024-03-29

51 每月下载量

MPL-2.0 许可证

27KB
442

NBF 嵌套块格式

根据 Mozilla 公共许可证,版本 2.0 许可。

关于

这个包提供了一个 "嵌套块格式"(简称 NBF)解析器的草案实现。NBF 是一种文本文件格式,专门设计用于人类能够以块的形式表达嵌套或层次化的结构。有关详细信息,请参阅文档


lib.rs:

这个包包含了一个嵌套块格式(NBF)的草案实现,这是一种便于人类表达嵌套或层次化数据的格式。NBF 的基本单元是块,可以包含零个或任意数量的嵌套子块。

block type: name of first block {
    another block type: name of nested block {
    }
}
block type: name of second block

在这个例子中 block type 是两个外部块的 类型,也称为块的 关键字第一个块的名字 是第一个块的 标题值。第一个外部块有一个 ,而第二个块没有 。 (当一个块没有子时,可以省略括号。)

对于真实示例,一个 NBF 数据集可能看起来像

person: Albert Einstein {
    year of birth: 1879
}
person: Max Planck {
    year of birth: 1858
}

定义人员的两个给定块包含内部块(无括号)

year of birth: 1879

year of birth: 1858

嵌套没有限制,除了用户在其实现中强加的限制。例如,一个 person 也可以有一个或多个地址块分配

person: Richard Feynman {
    year of birth: 1918
    address: home {
        street name: ...
        street number: ...
        city/town/village: ...
        county/state: ...
    }
    address: work {
        street name: ...
        street number: ...
        city/town/village: ...
        county/state: ...
    }
}

有关实现的详细信息,请参阅parser 模块。

无运行时依赖