#serialization #toml #pretty #array #value #structs #tabs

toml_pretty

将 serde-serializable 值格式化序列化为 toml 的函数

10 个版本 (稳定)

1.1.2 2024 年 6 月 11 日
1.0.3 2024 年 6 月 11 日
0.3.0 2024 年 6 月 11 日
0.2.0 2024 年 6 月 11 日
0.1.0 2024 年 6 月 10 日

#1225 in 编码

Download history 7/week @ 2024-06-04 695/week @ 2024-06-11 15/week @ 2024-06-18 40/week @ 2024-07-02 1/week @ 2024-07-16 37/week @ 2024-07-23 35/week @ 2024-07-30 37/week @ 2024-08-06

每月 110 次下载

MIT 许可证

10KB
210

toml_pretty

一个将 serde-serializable 值格式化序列化为 toml 的函数。

可以将结构体序列化为单个块中的 toml(与 toml crate 不同,后者非常适合反序列化,但不太适合格式化序列化)

不支持超过 2 层嵌套的数组字段。

注意。数组中的所有项目都在新的一行,并缩进。 toml_pretty::to_string 默认使用 \t 作为制表符。可以使用 Options(如示例所示)使用替代的制表符符号(例如,2 个空格)。

示例

给定可序列化的结构体

#[derive(Serialize)]
struct User {
  name: String,
  nicknames: Vec<String>,
  birthday: Birthday,
  more: Vec<Birthday>,
}

#[derive(Serialize)]
struct Birthday {
  day: u8,
  month: u8,
  year: u16,
}

可以使用 toml_pretty::to_string

let user = User {
	name: String::from("Jonathan"),
	nicknames: vec![String::from("Jack"), String::from("Jon")],
	birthday: Birthday {
		day: 0,
		month: 0,
		year: 1980,
	},
	more: vec![
		Birthday {
			day: 0,
			month: 0,
			year: 1980,
		},
		Birthday {
			day: 0,
			month: 0,
			year: 1980,
		},
	],
};
println!(
	"{}",
	toml_pretty::to_string(&user, toml_pretty::Options::default().tab("  "))
		.context("failed to serialize user pretty")
		.unwrap()
);

依赖关系

~2.2–3.5MB
~58K SLoC