1 个不稳定版本
0.1.0 | 2023年11月27日 |
---|
#2007 in Rust 模式
33KB
790 代码行
LSD
这是 LSD (Less Syntax Data) 配置/数据传输格式的 Rust 实现。
这是第一个实现。如果在这个仓库中将来有任何其他实现,它们很可能是这个实现的副本。
安装
Cargo/Crates
将 LSD 添加到您的 Rust 项目的最主要方式是通过官方 crates.io 仓库。
命令
cargo add lsdata
Cargo.toml
精确版本(示例;如果此 README 没有更新,请从 crates.io 页面 复制)
lsdata = "0.1.0"
最新版(适用于快速个人项目,非生产环境)
lsdata = "*"
从 GitHub
您也可以让 cargo 直接从 GitHub 分支构建开发版 LSD。
命令
cargo add --git https://github.com/kirillsemyonkin/lsd.git
Cargo.toml
lsdata = { git = "https://github.com/kirillsemyonkin/lsd.git" }
从本地文件夹
如果您正在本地开发一个变体,您也可以参考它。
命令
cargo add --path path/to/lsd/rust
Cargo.toml
lsdata = { path = "path/to/lsd/rust" }
用法
一旦将 LSD 添加到您的 Rust 项目中,请在您的代码中使用 (use
) 它
use lsdata::LSD; // Just LSD enum itself
use lsdata::LSD::*; // LSD variants (LSD::Level, LSD::List, LSD::Value)
use lsdata::key; // `key!` macro
use lsdata::*; // Import everything directly into your scope (except those variants)
有一个 parse
方法可供您使用
let file_lsd = LSD::parse(File::open("example.lsd")?)?;
let string_lsd = LSD::parse(Cursor::new("example Hello world!"))?;
要访问值,需要准备好 key!
宏
let lang_key = "rust";
let lang_name = lsd
.value(
key!["languages" lang_key "name"],
|| LanguageNameIsNotAValue,
)?
.ok_or_else(|| CouldNotFindLanguageName)?;
查看 文档 以了解 API 的更多信息。
计划
- 保存到文件
-
serde
支持
依赖项
~1MB
~17K SLoC