serde-yaml的文档具有以下4个功能:
from_reader— T从YAML的IO流中反序列化类型的实例。from_slice— T从YAML文本的字节中反序列化类型的实例。from_str— T从YAML文本字符串中反序列化类型的实例。from_value—将a解释serde_yaml::Value为type的实例T。使用from_reader作为一个例子:
extern crate serde_yaml;
fn main() -> Result<(), Box<std::error::Error>> {
let f = std::fs::File::open("something.yaml")?;
let d: String = serde_yaml::from_reader(f)?;
println!("Read YAML string: {}", d);
Ok(())
}
Run Code Online (Sandbox Code Playgroud)
Value如果您不知道其格式,则可以反序列化为松散类型,但是请务必阅读Serde指南,以获取有关如何进行类型定向的序列化和反序列化的完整详细信息。
也可以看看:
通常,使用任何 Serde格式与其余所有格式几乎相同。
此示例使用yaml_rust 箱
use std::fs::File;
use std::io::prelude::*;
use yaml_rust::yaml::{Hash, Yaml};
use yaml_rust::YamlLoader;
fn main() {
println!("Hello, Yaml");
let file = "./etc/my_yaml_file.yaml";
load_file(file);
}
fn load_file(file: &str) {
let mut file = File::open(file).expect("Unable to open file");
let mut contents = String::new();
file.read_to_string(&mut contents)
.expect("Unable to read file");
let docs = YamlLoader::load_from_str(&contents).unwrap();
// iterate / process doc[s] ..
}
Run Code Online (Sandbox Code Playgroud)