在本站中
本站是开源的,仓库在 yuxuetr/rustineverything。这一部分的链接都指向提交 89a61b1(2026-10-23),行号以它为准。那个提交的 Cargo.lock 锁的是 serde 1.0.228、serde_json 1.0.150、serde_yaml 0.9.34+deprecated,比本卷早一个和四个补丁版本。本站没有手写任何 Serialize / Deserialize impl,全部是 derive;格式只有两种,JSON 和 YAML。
- 本站怎么用 serde:五个用到 serde 的地方,各自的类型怎么写、坏输入会得到什么报错,对照常见坑一节逐条判断会不会遇到。结论:untagged 只用在请求一侧(只派生了
Serialize),缓冲主线的坑都碰不到;真会遇到的是missing field和invalid type,以及经Value写回site.json时键被重排、f32多出尾数。 - 升级到 1.0.229 与 1.0.154:两个版本区间的每一条改动对本站的影响。本站的 serde_json 只开了
std和raw_value;生成代码只在 10 个外部标签 enum 的visit_enum里换了写法;五个实验程序在两套版本下只有一行输出不同:非法 UTF-8 的报错列号。
flowchart TB cfg["site.json"] --> json["serde_json"] llm["LLM 请求与响应"] --> json sfn["server 函数参数与返回"] --> json fm["前置元数据"] --> yaml["serde_yaml"] ax["axum Query 与 Form"] --> urlenc["serde_urlencoded"] json --> core["serde 1.0.228"] yaml --> core urlenc --> core
axum 卷的路由与静态资源和dioxus 生成的 Router、bytes 卷的server 函数的请求体从 HTTP 一侧讲过同样几条路径;这里只看 serde 那一段。
💬 关联讨论
发起讨论加载中...