12 个稳定版本
2.13.0 | 2024 年 3 月 28 日 |
---|---|
2.12.0 | 2024 年 3 月 27 日 |
2.11.1 | 2024 年 1 月 31 日 |
2.10.2 | 2023 年 10 月 19 日 |
2.9.2 | 2023 年 9 月 30 日 |
#2362 在 编码
260 每月下载量
在 3 个 crate 中使用 (通过 sval_derive)
325KB
9K SLoC
sval_flatten
将嵌套的 sval::Value
值展开到其父结构。
lib.rs
:
在流式传输时展开嵌套值。
该库类似于标准库中的 Iterator::flatten
方法,但适用于 sval::Stream
。给定一个值,它将展开其嵌套值到父结构。它支持将任何组合的映射、序列、记录或元组展开到另一个结构。
如果您正在使用 sval_derive
,您可以在字段的 #[flatten]
属性中使用。
具体细节
展开会展开容器并将它们的值转换为父结构所需的形式。以下类型可以展开:
- 映射
- 序列
- 记录
- 元组
任何其他类型,包括标签、布尔值和文本等原始类型,如果展开,将忽略。
映射
- 映射:键直接传递,即使它们是其他映射等复杂值。
- 序列:键是序列值的字符串化偏移量。
- 记录:键是记录值的标签。
- 元组:键是元组值的字符串化索引。
序列
- 映射:忽略映射键;仅展开映射值。
- 序列:直接传递序列值。
- 记录:直接传递记录值。
- 元组:直接传递元组值。
记录
- 映射:映射键被字符串化成标签。对于其他映射等复杂值,每个嵌套值都会被字符串化并连接起来。
- 序列:标签是序列值的字符串化偏移量。
- 记录:直接传递标签。
- 元组:标签是元组值的字符串化索引。
元组
- 映射:忽略映射键;仅展开映射值。
- 序列:索引是序列值的偏移量。
- 记录:索引是记录值的偏移量。
- 元组:直接传递元组值。
依赖关系
~90KB