Apply Option difference to `None` target doesn't work as expected
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 35/100
Direzione di ricerca
Inizia eseguendo la riproduzione in Rust dell’issue, che usa serde_diff::Diff e Apply con un target Option inizializzato a None. Traccia come viene applicata la differenza serializzata da Some(5) a Some(10) quando il target è None. È completato quando il target è uguale a TestStruct { a: Some(10) } dopo che Apply::apply è stato eseguito correttamente.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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<i32>,
}
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 }
- Lingua principale
- Rust
- Stelle
- 127
- Fork
- 22
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Non abbiamo ancora controllato i file di configurazione di questo progetto. Parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di amethyst/serde-diff
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
amethyst/serde-diff#29 ·
-
Iterate over differencesAperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
amethyst/serde-diff#43 ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 10/100
amethyst/serde-diff#42 · 6 commenti · 2 reazioni ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 42/100
amethyst/serde-diff#39 ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
amethyst/serde-diff#35 · 1 reazione ·
Tutte le issue di amethyst/serde-diff
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 92/100
bytecodealliance/wasmtime#14433 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno