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编码

Download history 20/week @ 2024-04-14 28/week @ 2024-04-21 16/week @ 2024-04-28 14/week @ 2024-05-05 9/week @ 2024-05-12 21/week @ 2024-05-19 51/week @ 2024-05-26 62/week @ 2024-06-02 264/week @ 2024-06-09 35/week @ 2024-06-16 53/week @ 2024-06-23 20/week @ 2024-06-30 49/week @ 2024-07-07 29/week @ 2024-07-14 15/week @ 2024-07-21 165/week @ 2024-07-28

260 每月下载量
3 个 crate 中使用 (通过 sval_derive)

Apache-2.0 OR MIT

325KB
9K SLoC

sval_flatten

Rust Latest version Documentation Latest

将嵌套的 sval::Value 值展开到其父结构。


lib.rs:

在流式传输时展开嵌套值。

该库类似于标准库中的 Iterator::flatten 方法,但适用于 sval::Stream。给定一个值,它将展开其嵌套值到父结构。它支持将任何组合的映射、序列、记录或元组展开到另一个结构。

如果您正在使用 sval_derive,您可以在字段的 #[flatten] 属性中使用。

具体细节

展开会展开容器并将它们的值转换为父结构所需的形式。以下类型可以展开:

  • 映射
  • 序列
  • 记录
  • 元组

任何其他类型,包括标签、布尔值和文本等原始类型,如果展开,将忽略。

映射

  • 映射:键直接传递,即使它们是其他映射等复杂值。
  • 序列:键是序列值的字符串化偏移量。
  • 记录:键是记录值的标签。
  • 元组:键是元组值的字符串化索引。

序列

  • 映射:忽略映射键;仅展开映射值。
  • 序列:直接传递序列值。
  • 记录:直接传递记录值。
  • 元组:直接传递元组值。

记录

  • 映射:映射键被字符串化成标签。对于其他映射等复杂值,每个嵌套值都会被字符串化并连接起来。
  • 序列:标签是序列值的字符串化偏移量。
  • 记录:直接传递标签。
  • 元组:标签是元组值的字符串化索引。

元组

  • 映射:忽略映射键;仅展开映射值。
  • 序列:索引是序列值的偏移量。
  • 记录:索引是记录值的偏移量。
  • 元组:直接传递元组值。

依赖关系

~90KB