@@ -49,53 +49,12 @@ pub(crate) mod vec_update {
49
49
use super :: Updatable ;
50
50
51
51
/// Update structure for a Vec.
52
- #[ derive( Debug , Clone ) ]
52
+ #[ derive( Debug , Clone , serde_derive:: Deserialize ) ]
53
+ #[ serde( untagged) ]
53
54
pub ( crate ) enum VecUpdate < T > {
54
55
Array ( Vec < T > ) ,
55
56
PartialObj ( VecPartialUpdate < T > ) ,
56
57
}
57
- #[ allow( non_upper_case_globals, unused_attributes, unused_qualifications) ]
58
- const _IMPL_DESERIALIZE_FOR_VecUpdate: ( ) = {
59
- extern crate serde as _serde;
60
- impl < ' de , T > _serde:: Deserialize < ' de > for VecUpdate < T >
61
- where
62
- T : _serde:: Deserialize < ' de > ,
63
- {
64
- fn deserialize < __D > ( __deserializer : __D ) -> _serde:: export:: Result < Self , __D:: Error >
65
- where
66
- __D : _serde:: Deserializer < ' de > ,
67
- {
68
- let err1;
69
- let err2;
70
- let __content =
71
- <_serde:: private:: de:: Content as Deserialize >:: deserialize ( __deserializer) ?;
72
- match Result :: map (
73
- Vec :: < T > :: deserialize (
74
- _serde:: private:: de:: ContentRefDeserializer :: < __D:: Error > :: new ( & __content) ,
75
- ) ,
76
- VecUpdate :: Array ,
77
- ) {
78
- Ok ( value) => return Ok ( value) ,
79
- Err ( e) => err1 = e,
80
- }
81
- match Result :: map (
82
- VecPartialUpdate :: < T > :: deserialize (
83
- _serde:: private:: de:: ContentRefDeserializer :: < __D:: Error > :: new ( & __content) ,
84
- ) ,
85
- VecUpdate :: PartialObj ,
86
- ) {
87
- Ok ( value) => return Ok ( value) ,
88
- Err ( e) => err2 = e,
89
- }
90
- _serde:: export:: Err ( _serde:: de:: Error :: custom ( format ! (
91
- "data did not match any variant of \
92
- untagged enum VecUpdate (error for \
93
- Array: {}, error for PartialObj: {})",
94
- err1, err2
95
- ) ) )
96
- }
97
- }
98
- } ;
99
58
100
59
#[ derive( Debug , Clone ) ]
101
60
pub struct VecPartialUpdate < T > ( Vec < ( u32 , T ) > ) ;
0 commit comments