Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Serialization of Hashmap duplicate outer tag in the inners elements. Deserialization has no such problem and fails on serialized xml. #343

Closed
julienfr112 opened this issue Nov 19, 2021 · 1 comment · Fixed by #490
Assignees
Labels
bug help wanted serde Issues related to mapping from Rust types to XML

Comments

@julienfr112
Copy link

julienfr112 commented Nov 19, 2021

quick-xml = {version = "0.23.0-alpha2", features = ["serialize"]}
use serde::{Deserialize, Serialize};
use std::collections::HashMap;

use quick_xml::de::from_str;
use quick_xml::se::to_string;

#[derive(Debug, Serialize, Deserialize)]
struct Users {
    users: HashMap<String, User>,
}
#[derive(Debug, Deserialize, Serialize, PartialEq)]
struct Max(u16);

#[derive(Debug, Deserialize, Serialize, PartialEq)]
struct User {
    max: Max,
}

fn main() {
    let xml = "<Users><users><roger><max>10</max></roger></users></Users";
    let users: Users = from_str(xml).unwrap();
    println!("des : {:?}", users);
    let xml2 = to_string(&users).unwrap();
    println!("res : {:?}", xml);
    println!("res : {:?}", xml2);
}

output :

des : Users { users: {"roger": User { max: Max(10) }} }
res : "<Users><users><roger><max>10</max></roger></users></Users"
res : "<Users><users><roger><users><max>10</max></users></roger></users></Users>"
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Custom("missing field `max`")', src/main.rs:27:41
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
@Storyyeller
Copy link

Enums have the same problem (#346)

@Mingun Mingun added bug serde Issues related to mapping from Rust types to XML labels May 21, 2022
@Mingun Mingun self-assigned this Sep 7, 2022
Mingun added a commit to Mingun/quick-xml that referenced this issue Oct 1, 2022
Fixes tafia#252 - ok
Fixes tafia#280 - ok
Fixes tafia#287 - ok
Fixes tafia#343 - ok
Fixes tafia#346 - not ok
Fixes tafia#361 - ok
Partially addresses tafia#368
Fixes tafia#429 - ok
Fixes tafia#430 - ok
Mingun added a commit to Mingun/quick-xml that referenced this issue Oct 1, 2022
Fixes tafia#252
Fixes tafia#280
Fixes tafia#287
Fixes tafia#343
Fixes tafia#346
Fixes tafia#361
Partially addresses tafia#368
Fixes tafia#429
Fixes tafia#430
Mingun added a commit to Mingun/quick-xml that referenced this issue Oct 24, 2022
Fixes tafia#252
Fixes tafia#280
Fixes tafia#287
Fixes tafia#343
Fixes tafia#346
Fixes tafia#361
Partially addresses tafia#368
Fixes tafia#429
Fixes tafia#430

Fixes all tests
Mingun added a commit to Mingun/quick-xml that referenced this issue Oct 25, 2022
Fixes tafia#252
Fixes tafia#280
Fixes tafia#287
Fixes tafia#343
Fixes tafia#346
Fixes tafia#361
Partially addresses tafia#368
Fixes tafia#429
Fixes tafia#430

Fixes all tests
Mingun added a commit to Mingun/quick-xml that referenced this issue Oct 26, 2022
Fixes tafia#252
Fixes tafia#280
Fixes tafia#287
Fixes tafia#343
Fixes tafia#346
Fixes tafia#361
Partially addresses tafia#368
Fixes tafia#429
Fixes tafia#430

Fixes all tests

Co-authored-by: Daniel Alley <dalley@redhat.com>
JOSEPHGILBY pushed a commit to JOSEPHGILBY/quick-xml that referenced this issue Nov 5, 2022
Fixes tafia#252
Fixes tafia#280
Fixes tafia#287
Fixes tafia#343
Fixes tafia#346
Fixes tafia#361
Partially addresses tafia#368
Fixes tafia#429
Fixes tafia#430

Fixes all tests

Co-authored-by: Daniel Alley <dalley@redhat.com>
JOSEPHGILBY pushed a commit to JOSEPHGILBY/quick-xml that referenced this issue Nov 5, 2022
Fixes tafia#252
Fixes tafia#280
Fixes tafia#287
Fixes tafia#343
Fixes tafia#346
Fixes tafia#361
Partially addresses tafia#368
Fixes tafia#429
Fixes tafia#430

Fixes all tests

Co-authored-by: Daniel Alley <dalley@redhat.com>
Mingun added a commit to Mingun/quick-xml that referenced this issue Jan 8, 2023
dralley pushed a commit that referenced this issue Jan 8, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug help wanted serde Issues related to mapping from Rust types to XML
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants