在 Rust 中,可以使用 serde_toml
库来处理 TOML 文件,并且可以方便地进行类型转换。
首先,需要在 Cargo.toml
文件中添加 serde_toml
依赖:
[dependencies]
serde_toml = "0.5"
然后,可以使用 serde_derive
宏来为结构体自动生成序列化和反序列化代码:
use serde::{Deserialize, Serialize};
#[derive(Debug, Serialize, Deserialize)]
struct Config {
database: DatabaseConfig,
}
#[derive(Debug, Serialize, Deserialize)]
struct DatabaseConfig {
username: String,
password: String,
host: String,
port: u16,
}
接下来,可以使用 serde_toml::from_str
方法将 TOML 字符串转换为 Rust 结构体:
fn main() {
let toml_str = r#"
[database]
username = "myuser"
password = "mypassword"
host = "localhost"
port = 3306
"#;
let config: Config = toml_str.parse().unwrap();
println!("{:?}", config);
}
在这个例子中,我们将一个包含数据库配置信息的 TOML 字符串转换为了 Config
结构体。如果需要将 Rust 结构体转换回 TOML 字符串,可以使用 serde_toml::to_string
方法:
let config_str = toml::to_string(&config).unwrap();
println!("{}", config_str);
这样就可以方便地在 Rust 中进行 TOML 文件的操作和类型转换了。