Serde を使用して、次の構造体に基づいてJSON ( serde-json) および XML ( ) ファイルを逆シリアル化しようとしています。serde-xml-rs
use serde_derive::Deserialize;
#[derive(Debug, Clone, PartialEq, Deserialize)]
pub struct SchemaConfig {
pub name: String,
#[serde(rename = "Cube")]
pub cubes: Vec<CubeConfig>,
}
逆シリアル化しているフィールドの名前は、ファイルの種類によって異なります。この場合、JSON ファイルにcubesキューブのリストを含むキーを持たせたいのですが、XML で同等のものは複数の<Cube />要素になります。
cubesと の両方をCube逆シリアル化のキーとして受け入れる方法がわかりません。私が見つけた最も近いものは#[serde(rename = "Cube")]オプションでしたが、それを使用すると、キーのみを受け入れるため、JSON デシリアライゼーションが機能しなくなりCubeます。そのオプションを削除すると、XML デシリアライゼーションcubesはキーとしてのみ受け入れられるため、機能しなくなります。
Serdeでこれを達成する簡単な方法はありますか?