3 个版本

0.9.13 2021 年 7 月 3 日
0.9.10 2021 年 2 月 18 日
0.9.9 2021 年 2 月 12 日

配置 中排名第 565

MIT 许可证

105KB
3K SLoC

Cumin

crates.io

孜然是一种结构化、类型化和小程序可编程的配置语言。

文档

特性

  • Rust 风格语法
  • 结构化
    • 结构体,枚举
  • 类型化
    • 验证数据
  • 小程序可编程

示例

struct UserRecord {
    id: Int,
    name: Option<String> = None,
    region: Region = Region::Unknown,
}

enum Region {
    Unknown,
    East,
    West,
}

[
    UserRecord(1, "cympfh", Region::East),
    UserRecord { id = 2, name = "Alan", region = Region::West, },
    UserRecord { id = 3, name = "Bob" },
    UserRecord { id = 4, region = Region::East },
]

编译器

孜然编译器 cuminc 将孜然转换为 JSON。

$ cuminc ./examples/names.cumin
[
  {
    "id": 1,
    "name": "cympfh",
    "region": "East"
  },
  {
    "id": 2,
    "name": "Alan",
    "region": "West"
  },
  {
    "id": 3,
    "name": "Bob",
    "region": "Unknown"
  },
  {
    "id": 4,
    "name": null,
    "region": "East"
  }
]

对于 Vim 用户

Plugin 'rust-lang/rust.vim'
au BufRead,BufNewFile *.cumin set filetype=cumin
au FileType cumin set syntax=rust

依赖项

~7.5MB
~141K SLoC