2 个不稳定版本
0.2.0 | 2022年8月15日 |
---|---|
0.1.0 | 2019年10月17日 |
#2616 在 解析器实现
在 yolol-yaml-deserializer 中使用
39KB
774 行
libyaml
此 Rust 包通过 LibYAML 库的 unsafe-libyaml
包提供高级绑定。它有以下限制
- 当前的 token 和文档 API 仍未实现。
安装
只需将此包添加到您的 Cargo.toml
[dependencies]
libyaml = "0.2"
您不需要在目标系统上安装 LibYAML 库。相反,unsafe-libyaml
提供了一个编译后的版本。
许可证
此包受 MIT 许可证 的约束。
lib.rs
:
LibYAML 库的高级绑定。
读取 YAML
要读取 YAML 流,请使用 Parser
。以下示例计算流中别名事件的数目。
#
let alias_count = Parser::new(reader)?.into_iter().filter(|e| {
if let Ok(Event::Alias { .. }) = e { true } else { false }
}).count();
写入 YAML
要写入 YAML 流,请使用 Emitter
。以下示例写入包含单个标量的单个文档的流。
#
let mut emitter = Emitter::new(writer)?;
emitter.emit(Event::StreamStart { encoding: None })?;
emitter.emit(Event::DocumentStart { implicit: true })?;
emitter.emit(Event::Scalar {
anchor: None,
tag: Some(tag::INT.to_string()),
value: "42".to_string(),
plain_implicit: false,
quoted_implicit: false,
style: None,
})?;
emitter.emit(Event::DocumentEnd { implicit: true })?;
emitter.emit(Event::StreamEnd)?;
依赖关系
~440KB
~11K SLoC