示例配置文件

项目根目录添加 app.yaml 文件

  1. name: Alex
  2. age: 21
  3. gender: male
  4. friends:
  5. - Bob
  6. - Alice
  7. - Tide

需要的依赖

  • serde
  • serde_yaml

cargo.toml

  1. serde = { version = "1", features = ["derive"] }
  2. serde_yaml = "0.8"

功能实现

  1. extern crate serde_yaml;
  2. extern crate serde;
  3. use serde::{Serialize, Deserialize};
  4. /// 定义 User 类型
  5. #[derive(Debug, Serialize, Deserialize)]
  6. struct User {
  7. name: String,
  8. age: i32,
  9. gender: String,
  10. friends: Vec<String>,
  11. }
  12. fn main() {
  13. // 使用相对路径读取 app.yaml 内容为字符串
  14. let yaml_str = include_str!("../../app.yaml");
  15. // serde_yaml 解析字符串为 User 对象
  16. let user: User = serde_yaml::from_str(yaml_str)
  17. .expect("app.yaml read failed!");
  18. println!("{:?}", user);
  19. }

运行

  1. cargo run

最终结果:

Rust 语言如何实现读取 yaml 配置文件 - 图1