Falha ao analisar XML com um elemento opcional com serde-xml-rs

Eu tenho uma árvore de estruturas anotadas por serde e ela consegue analisar o XML de exemplo, incluindo este fragmento:

<bmsg>
    <cmsg>
         <!-- ... -->
    <cmsg>
<bmsg>

Agora estou testando com um grande arquivo XML de amostra e as seguintes estruturas falham porque às vezes<cmsg>..</cmsg> está desaparecido. Eu estava desserializando isso usando:

#[derive(Serialize,Deserialize, Debug)]
struct A {  
    #[serde(rename="bmsg")]
    messages: B,                 // <====
}

#[derive(Serialize,Deserialize, Debug)]
struct B {  // bmsg
    #[serde(rename="cmsg")]
    list: Vec<C>,
}

O que resultou em um erro na segunda estrutura:

panicked at 'called `Result::unwrap()` on an `Err` value: missing field `cmsg`

Eu mudei a primeira estrutura para ter umVec<> para que ele possa lidar com um elemento opcional:

#[derive(Serialize,Deserialize, Debug)]
struct A {  
    #[serde(rename="bmsg")]
    messages: Vec<B>,            // <====
}

#[derive(Serialize,Deserialize, Debug)]
struct B {  // bmsg
    #[serde(rename="cmsg")]
    list: Vec<C>,
}

Mas serde continua a dar o mesmo erro. eu tenteiOption<> também, mas não chegou a lugar nenhum.

O que mais me deixa perplexo é que eu usoVec<> em todo o lugar e nunca tive esse problema.

questionAnswers(1)

yourAnswerToTheQuestion