Skip to content

Commit 4a6e636

Browse files
authored
Update to latest version of quick-xml (#3153)
This includes fixes for proper handling of whitespace characters within XML elements (introduced in `v0.38.0`). Fixes Azure/typespec-rust#636
1 parent d35ff91 commit 4a6e636

File tree

3 files changed

+9
-4
lines changed

3 files changed

+9
-4
lines changed

Cargo.lock

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ opentelemetry_sdk = "0.30"
115115
opentelemetry-http = "0.30"
116116
pin-project = "1.0"
117117
proc-macro2 = "1.0.97"
118-
quick-xml = { version = "0.31", features = ["serialize", "serde-types"] }
118+
quick-xml = { version = "0.38.3", features = ["serialize", "serde-types"] }
119119
quote = "1.0.37"
120120
rand = "0.9.1"
121121
rand_chacha = "0.9"

sdk/typespec/typespec_client_core/src/http/response.rs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -534,14 +534,15 @@ mod tests {
534534
struct GetSecretResponse {
535535
name: String,
536536
value: String,
537+
whitespace: String,
537538
}
538539

539540
/// A sample service client function.
540541
fn get_secret() -> Response<GetSecretResponse, XmlFormat> {
541542
RawResponse::from_bytes(
542543
StatusCode::Ok,
543544
Headers::new(),
544-
"<GetSecretResponse><name>my_secret</name><value>my_value</value></GetSecretResponse>",
545+
"<GetSecretResponse><name>my_secret</name><value>my_value</value><whitespace> foo </whitespace></GetSecretResponse>",
545546
).into()
546547
}
547548

@@ -551,6 +552,7 @@ mod tests {
551552
let secret = response.into_body().unwrap();
552553
assert_eq!(secret.name, "my_secret");
553554
assert_eq!(secret.value, "my_value");
555+
assert_eq!(secret.whitespace, " foo ");
554556
}
555557

556558
#[test]
@@ -561,12 +563,15 @@ mod tests {
561563
yon_name: String,
562564
#[serde(rename = "value")]
563565
yon_value: String,
566+
#[serde(rename = "whitespace")]
567+
yon_whitespace: String,
564568
}
565569

566570
let response: Response<GetSecretResponse, XmlFormat> = get_secret();
567571
let secret: MySecretResponse = response.into_raw_body().xml().unwrap();
568572
assert_eq!(secret.yon_name, "my_secret");
569573
assert_eq!(secret.yon_value, "my_value");
574+
assert_eq!(secret.yon_whitespace, " foo ");
570575
}
571576
}
572577
}

0 commit comments

Comments
 (0)