Skip to content

Commit

Permalink
docs: polish
Browse files Browse the repository at this point in the history
  • Loading branch information
SoonIter committed Jul 2, 2024
1 parent 266bceb commit 3c2dd60
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 13 deletions.
2 changes: 1 addition & 1 deletion src/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
* [结构体扁平化(Struct flattening)](attr-flatten.md)
* [手写泛型类型边界(generic type bounds)](attr-bound.md)
* [为自定义 map 类型实现 Deserialize](deserialize-map.md)
* [无缓冲的 values 数组](stream-array.md)
* [无 buffer 的 values 数组](stream-array.md)
* [将 enum 序列化为 number](enum-number.md)
* [将字段序列化成 camelCase](attr-rename.md)
* [跳过序列化字段](attr-skip-serializing.md)
Expand Down
2 changes: 1 addition & 1 deletion src/attr-bound.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# 手写泛型边界
# 手写泛型边界(generic trait bound)

当为具有泛型类型参数的结构体派生 `Serialize``Deserialize` 实现时,大多数情况下 Serde 能够推断出正确的 trait 边界,无需程序员的帮助。它使用几种启发式方法来猜测正确的边界,但最重要的是,它会在每个序列化字段中包含的类型参数 `T`上放置一个边界 `T: Serialize`,并在每个反序列化字段中包含的类型参数 `T` 上放置一个边界 `T: Deserialize`。就像大多数启发式方法一样,这并不总是正确的,Serde 提供了一个 escape

Expand Down
18 changes: 9 additions & 9 deletions src/examples.md
Original file line number Diff line number Diff line change
@@ -1,33 +1,33 @@
# 示例

**[JSON中的结构体和枚举](json.md)**: 由[`serde_json`](https://github.com/serde-rs/json)选择的结构体和枚举表示形式。鼓励其他易读的数据格式在可能的情况下采用类似的方法。
**[JSON 中的结构体和枚举](json.md)**: 由[`serde_json`](https://github.com/serde-rs/json)选择的结构体和枚举表示形式。鼓励其他易读的数据格式在可能的情况下采用类似的方法。

**[枚举表示方式](enum-representations.md)**: 在自描述格式中表示枚举的外部标记、内部标记、相邻标记和无标记方式。

**[字段的默认值](attr-default.md)**: `#[serde(default)]`属性的一些示例。

**[手写通用类型边界](attr-bound.md)**: Serde的衍生推断出错通用类型边界的一些不寻常情形。可以使用`#[serde(bound)]`属性手动替换impl边界
**[手写通用类型边界](attr-bound.md)**: Serde 的衍生推断出错通用类型边界的一些不寻常情形。可以使用`#[serde(bound)]`属性手动替换 impl 边界

**[自定义映射类型的反序列化](deserialize-map.md)**: 解释反序列化映射涉及的每个步骤。

**[无需缓冲的值数组](stream-array.md)**: 在不一次性保留整个数组在内存中的情况下反序列化整数数组的最大值。这种方法可以适应各种需要在反序列化时处理数据而不是之后处理数据的情况。
**[无需缓冲区 (Buffering) 的流式数组](stream-array.md)**: 在不一次性保留整个数组在内存中的情况下反序列化整数数组的最大值。这种方法可以适应各种需要在反序列化时处理数据而不是之后处理数据的情况。

**[将枚举作为数字序列化](enum-number.md)**: 为类似C的枚举实现`Serialize``Deserialize`的宏,以在所有数据格式中表示它为`u64`
**[将枚举作为数字序列化](enum-number.md)**: 为类似 C 的枚举实现`Serialize``Deserialize`的宏,以在所有数据格式中表示它为`u64`

**[将字段作为camelCase序列化](attr-rename.md)**: `#[serde(rename)]`属性的一个常见应用。
**[将字段重命名为 camelCase](attr-rename.md)**: `#[serde(rename)]`属性的一个常见应用。

**[跳过序列化字段](attr-skip-serializing.md)**: `#[serde(skip_serializing)]``#[serde(skip_serializing_if)]`属性的一些示例。

**[为远程库衍生](remote-derive.md)**: 为别人的库中的类型衍生`Serialize``Deserialize`实现。
**[为远程库派生](remote-derive.md)**: 为别人的库中的类型派生 `Serialize``Deserialize` 实现。

**[手动反序列化结构体](deserialize-struct.md)**: 一个简单结构体由derive生成的`Deserialize`实现的长表格形式。
**[手动反序列化结构体](deserialize-struct.md)**: 一个简单结构体由 derive 生成的 `Deserialize` 实现的长表格形式。

**[丢弃数据](ignored-any.md)**: 使用`IgnoredAny`高效地丢弃反序列化器中的数据
**[丢弃数据](ignored-any.md)**: 使用 `IgnoredAny` 高效地丢弃 Deserializer 中的数据

**[将一种格式转码为另一种](transcode.md)**: 使用[serde-transcode](https://github.com/sfackler/serde-transcode)库将输入流从一种格式转换为另一种格式。

**[反序列化字符串或结构体](string-or-struct.md)**: [`docker-compose.yml`](https://docs.docker.com/compose/compose-file/#/build)配置文件有一个"build"键,可以是字符串或结构体。

**[转换错误类型](convert-error.md)**: 使用`Error::custom`将来自某种格式的Serde错误映射成为其他格式的Serde错误
**[转换错误类型](convert-error.md)**: 使用`Error::custom`将来自某种格式的 Serde 错误映射成为其他格式的 Serde 错误

**[自定义格式的日期](custom-date-format.md)**: 处理用自定义字符串表示的[`chrono`](https://github.com/chronotope/chrono) `DateTime`
5 changes: 3 additions & 2 deletions src/stream-array.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
# 在不缓冲到 Vec 中的情况下处理值数组
# 不 buffer 到 Vec 中来处理数组中的值

假设我们有一个整数数组,我们想要找出最大值,而不需要一次将整个数组全部保存在内存中。这种方法可以被调整用于处理各种需要在反序列化时处理数据而不是之后的情况
假设我们有一个整数数组,我们想计算出最大值,而不同时将整个数组保存在内存中。这种方法也可以处理各种其他情况,需要在反序列化的同时处理数据,而不是之后再处理数据

<!-- !PLAYGROUND 270186a56b8321704dc45001fdfa3c92 -->

```rust
use serde::{Deserialize, Deserializer};
use serde::de::{self, Visitor, SeqAccess};
Expand Down

0 comments on commit 3c2dd60

Please sign in to comment.