Deserializing tag with attribute values into Map
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
調査の方向性
Start by reading the deserialization handling for internally tagged enums and $value fields, then trace how maps and sequences are populated from XML elements. The issue provides a reproducer with AttrDefChoice, AttrDef, and MultiMap; check whether the map can accept element values alongside the name attribute and add a regression case for that input. Done means the example deserializes successfully into a map, with existing behavior preserved.
索引モデルが issue の本文から書いたものです。
説明
Assume we have below xml structure:
<container>
<attr>
<name>Name</name>
<desc>Description</desc>
</attr>
</container>
when <attr> tag doesn't have attribute values, quick-xml parses successfully into Map (HashMap, MultiMap)
Container ( "attr" : { Name(Name), Desc(Description) } )
#[derive(Deserialize, PartialEq)]
pub enum AttrDefChoice {
Name(String),
Desc(String),
}
#[derive(Deserialize, PartialEq)]
pub enum ContainerDef {
Container(MultiMap<String, AttrDefChoice>),
}
but when <attr> have name value I need some wrapper struct with rename = "$value". In that case it works only with attr: Vec<AttrDefChoice>.
<container>
<attr name="AttrName">
<name>Name</name>
<desc>Description</desc>
</attr>
</container>
...
#[derive(Deserialize, PartialEq)]
pub struct AttrDef {
name: String,
#[serde(rename = "$value")]
attr: MultiMap<String, AttrDefChoice>,
}
invalid type: string "Name", expected internally tagged enum AttrDefChoice
Is there any way to achieve parsing of tags with values into Map?
- 主要言語
- Rust
- スター
- 1.6k
- フォーク
- 299
- 平均マージ
- 2日 4時間
- マージ済み PR(30日)
- 9
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
tafia/quick-xml のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
メンテナーはふだん 1 日以内に返信
-
DecodingReader::set_encoding panics when the XML declaration is longer than 64 bytes対応中かも @emschwartz が 4 日前に担当しました。 オープンbug encoding
難易度 4/5 3〜5日 初心者へのやさしさ 30/100
tafia/quick-xml#1040 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
encoding optimization
難易度 4/5 3〜5日 初心者へのやさしさ 55/100
tafia/quick-xml#1039 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
optimization question
難易度 4/5 3〜5日 初心者へのやさしさ 52/100
メンテナーはふだん 1 日以内に返信
-
enhancement
難易度 4/5 1〜2日 初心者へのやさしさ 53/100
tafia/quick-xml#1035 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
tafia/quick-xml の issue をすべて見る
似ている issue
-
priority: medium ready
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
TusanHomichi/PSIV#646 ·
メンテナーはふだん 1 日以内に返信
-
bug lab rust-mcp
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
area:cli good first issue help wanted needs translation priority:P2 type:documentation
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
SpecterAoD/pqkeep#226 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
haowjy/mars-agents#381 ·
メンテナーはふだん 1 日以内に返信
-
[Bug]: opencode_go chat route drops reasoning_effort (even 'none'), while the same endpoint honors it via custom_llm_provider=openai対応中かも @arvindkumar-ship-it が今日担当しました。 オープンllm translation
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
BerriAI/litellm#51871 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信