76 个版本
0.6.11 | 2024年6月26日 |
---|---|
0.6.9 | 2024年5月22日 |
0.6.3 | 2024年2月25日 |
0.5.0 | 2023年9月2日 |
0.1.5 | 2021年7月24日 |
#403 在 解析器实现
308 每月下载次数
在 2 crate 中使用
49KB
1.5K SLoC
Cirru Edn 在 Rust 中
基于 Cirru 语法可扩展的数据符号
用法
cargo add cirru_edn
use cirru_edn::Edn;
cirru_edn::parse("[] 1 2 true"); // Result<Edn, String>
cirru_edn::format(data, /* use_inline */ true); // Result<String, String>.
EDN 格式
混合数据
{} (:a 1.0)
:b $ [] 2.0 3.0 4.0
:c $ {} (:d 4.0)
:e true
:f :g
:h $ {} (|a 1.0)
|b true
{}
:b $ [] 2 3 4
:a 1
:c $ {}
:h $ {} (|b true) (|a 1)
:f :g
:e true
:d 4
对于顶层字面量,需要使用 do
表达式
do nil
do true
do false
do 1
do -1.1
引用代码
do 'a
quote (a b)
标签(以前称为“关键字”)
do :a
字符串语法,注意它使用的是 |
前缀语法
do |a
特殊字符字符串
do \"|a b\"
嵌套列表
[] 1 2 $ [] 3
#{} ([] 3) 1
元组或标签联合,实际上由于 Calcit 语义而非常有限
:: :a
:: :b 1
自 0.3
以来可以添加额外的元组值
:: :a 1 |extra :l
记录,注意现在它全部使用标签
%{} :Demo (:a 1)
:b 2
:c $ [] 1 2 3
用于存储缓冲区的额外格式,它内部是 Vec<u8>
buf 00 01 f1 11
许可证
MIT
依赖关系
~1.5MB
~17K SLoC