> This page is for SDK.

> For clean Markdown content of this page, append .md to this URL. For the complete documentation index, see https://buildwithfern.com/learn/llms.txt.

## 0.22.1

**`(fix):`** 修复 `SseStream` 超时实现中的双重 pin 编译错误。`deadline` 字段被声明为 `Pin<Box<tokio::time::Sleep>>`，并带有 `#[pin]` 属性，这导致 `pin_project` 产生 `Pin<&mut Pin<Box<Sleep>>>`，缺少 `reset()` 和 `poll()` 方法。将字段类型更改为 `tokio::time::Sleep`（未固定，让 `pin_project` 处理固定），使投影类型为 `Pin<&mut Sleep>`，从而正确暴露所需的方法。

## 0.22.0

**`(feat):`** 为 SSE 流方法添加每事件超时功能。`SseStream` 现在接受超时持续时间，如果在该时间段内没有收到事件，则产生 `ApiError::StreamTimeout`。超时时间来源于 `RequestOptions.timeout_seconds`（每次请求）或 `ClientConfig.timeout`（客户端级别），防止服务器停止发送事件时的无限阻塞。

## 0.21.0

**`(feat):`** 添加前向兼容的枚举支持。当在枚举类型上设置 `forward-compatible: true` 时，生成的 Rust 枚举包含 `#[non_exhaustive]` 属性、用于未识别值的隐藏 `__Unknown(String)` 变体，以及优雅处理来自服务器的未知枚举值的自定义 Serialize/Deserialize 实现。

## 0.20.4

**`(fix):`** 当所有字段的类型在 Rust 中实现 `Default` 时，为请求体类型（内联和查询参数请求）派生 `Default`，而不仅仅是当所有字段都是 `Option<T>` 时。之前，像 `ChatRequest { stream: bool, ... }` 这样的请求不会获得 `Default`，因为 `bool` 不是 `Option`，即使 `bool` 实现了 `Default`。现在生成器使用与模型结构体相同的 `canDeriveDefault()` 逻辑。

## 0.20.3

**`(fix):`** 修复动态代码片段和线路测试为可选+可空字段生成 `Some(Some(value))` 的问题。由于 `Type.option()` 现在将 `Option<Option<T>>` 折叠为 `Option<T>`，字面量映射器也必须折叠嵌套的可选/可空包装以产生 `Some(value)` 而不是 `Some(Some(value))`。

## 0.20.2

**`(fix):`** 修复内联请求类型文档，使用 OpenAPI 规范中的模式级描述而不是通用回退。之前，所有内联请求类型都使用相同的 `Request type for API operation` 文档字符串。现在，当可用时会传播并使用实际的模式描述。

## 0.20.1

**`(fix):`** 通过仅在需要相应功能时有条件地在 http\_client.rs 中包含 execute\_multipart\_request 和 execute\_sse\_request 方法，修复多部分和 sse 功能的 unexpected\_cfgs 警告。同时修复 query\_parameter\_builder.rs 中未使用的 Utc 导入和 http\_client.rs 中未使用的 SerdeError 导入。

## 0.20.0

**`(feat):`** 通过根据 IR 使用情况有条件地包含依赖项来减少依赖项占用。现在只有当 API 规范中实际使用相应类型时，才会将 chrono、uuid、num-bigint、ordered-float 和 base64 等依赖项添加到 Cargo.toml 中。关联的原样文件（flexible\_datetime.rs、base64\_bytes.rs、bigint\_string.rs）及其模块声明也有条件地包含。query\_parameter\_builder.rs、http\_client.rs 和 prelude.rs 的模板文件使用模板变量来省略未使用的代码段。

## 0.19.11

**`(fix):`** 在生成的方法签名、联合 getter 方法和无区别联合访问器方法中使用 `&str` 而不是 `&String`。`&str` 是更符合 Rust 惯例的类型，更灵活，既接受 `&String` 也接受字符串字面量。

## 0.19.10

**`(fix):`** 当使用 `serde_json::to_value` 序列化请求体时，将 `unwrap_or_default()` 替换为通过 `map_err(ApiError::Serialization)?` 进行适当的错误传播。之前，序列化失败被静默吞噬并替换为默认的 JSON null 值。现在它们正确地向调用者返回 `ApiError::Serialization` 错误。