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 错误。