amethyst / amethyst/serde-diff

Apply Option difference to `None` target doesn't work as expected

Aberta
#28 3 comentários 0 reações 0 responsáveis Ver no GitHub
Linguagem predominante
Rust
Estrelas
127
Forks
21
Métricas de merge de PRs
Nenhum PR com merge em 30d

Descrição

#### Example to reproduce the issue

```
use serde::{Deserialize, Serialize};
use serde_diff::{Apply, Diff, SerdeDiff};

#[derive(SerdeDiff, Serialize, Deserialize, PartialEq, Debug, Clone)]
struct TestStruct {
a: Option,
}

fn main() {
let old = TestStruct { a: Some(5) };
let new = TestStruct { a: Some(10) };
let mut target = TestStruct { a: None };
let expected = new.clone();

let diff = Diff::serializable(&old, &new);
let json_diff = serde_json::to_string(&diff).unwrap();
let mut deserializer = serde_json::Deserializer::from_str(&json_diff);

Apply::apply(&mut deserializer, &mut target).unwrap();

assert_eq!(target, expected);
}
```

#### Expected result

For target to equal `TestStruct { a: Some(10) }`

#### Actual result

Target equals `TestStruct { a: None }`

Guia de contribuição

Nenhum guia de contribuição indexado para este repositório

Avaliação

Esta issue ainda não foi avaliada.

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.