0.22.1

(fix): Fix double-pin compilation error in SseStream timeout implementation. The deadline field was declared as Pin<Box<tokio::time::Sleep>> with a #[pin] attribute, causing pin_project to produce Pin<&mut Pin<Box<Sleep>>> which lacks reset() and poll() methods. Changed the field type to tokio::time::Sleep (unpinned, letting pin_project handle pinning) so the projected type is Pin<&mut Sleep> which correctly exposes the required methods.

0.22.0

(feat): Add per-event timeout to SSE stream methods. The SseStream now accepts a timeout duration and yields ApiError::StreamTimeout if no event is received within that period. The timeout is derived from RequestOptions.timeout_seconds (per-request) or ClientConfig.timeout (client-level), preventing indefinite blocking when the server stops sending events.

0.21.0

(feat): Add forward-compatible enum support. When forward-compatible: true is set on an enum type, the generated Rust enum includes a #[non_exhaustive] attribute, a hidden __Unknown(String) variant for unrecognized values, and custom Serialize/Deserialize implementations that gracefully handle unknown enum values from the server.

0.20.4

(fix): Derive Default on request body types (inlined and query-parameter requests) when all fields have types that implement Default in Rust, not only when all fields are Option<T>. Previously, a request like ChatRequest { stream: bool, ... } would not get Default because bool is not Option, even though bool implements Default. Now the generator uses the same canDeriveDefault() logic already used for model structs.

0.20.3

(fix): Fix dynamic snippets and wire tests generating Some(Some(value)) for optional+nullable fields. Since Type.option() now collapses Option<Option<T>> to Option<T>, the literal mapper must also collapse nested optional/nullable wrapping to produce Some(value) instead of Some(Some(value)).

0.20.2

(fix): Fix inlined request type documentation to use the schema-level description from the OpenAPI spec instead of a generic fallback. Previously, all inlined request types used the same Request type for API operation docstring. Now, the actual schema description is propagated and used when available.

0.20.1

(fix): Fix unexpected_cfgs warnings for multipart and sse features by conditionally including the execute_multipart_request and execute_sse_request methods in http_client.rs only when the corresponding features are needed. Also fix unused Utc import in query_parameter_builder.rs and unused SerdeError import in http_client.rs.

0.20.0

(feat): Reduce dependency footprint by conditionally including dependencies based on IR usage. Dependencies like chrono, uuid, num-bigint, ordered-float, and base64 are now only added to Cargo.toml when the corresponding types are actually used in the API spec. Associated as-is files (flexible_datetime.rs, base64_bytes.rs, bigint_string.rs) and their module declarations are also conditionally included. Template files for query_parameter_builder.rs, http_client.rs, and prelude.rs use template variables to omit unused code sections.

0.19.11

(fix): Use &str instead of &String in generated method signatures, union getter methods, and undiscriminated union accessor methods. &str is more idiomatic Rust and more flexible, accepting both &String and string literals.

0.19.10

(fix): Replace unwrap_or_default() with proper error propagation via map_err(ApiError::Serialization)? when serializing request bodies with serde_json::to_value. Previously, serialization failures were silently swallowed and replaced with a default JSON null value. Now they correctly return an ApiError::Serialization error to the caller.