amethyst / amethyst/serde-diff

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

Ouverte
#28 3 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
Rust
Étoiles
127
Forks
21
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

#### 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 }`

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.