@@ -206,6 +206,7 @@ mod content {
206
206
use lib:: * ;
207
207
208
208
use __private:: size_hint;
209
+ use actually_private;
209
210
use de:: {
210
211
self , Deserialize , DeserializeSeed , Deserializer , EnumAccess , Expected , IgnoredAny ,
211
212
MapAccess , SeqAccess , Unexpected , Visitor ,
@@ -215,7 +216,7 @@ mod content {
215
216
/// deserializing untagged enums and internally tagged enums.
216
217
///
217
218
/// Not public API. Use serde-value instead.
218
- #[ derive( Debug ) ]
219
+ #[ derive( Debug , Clone ) ]
219
220
pub enum Content < ' de > {
220
221
Bool ( bool ) ,
221
222
@@ -294,7 +295,7 @@ mod content {
294
295
// Untagged and internally tagged enums are only supported in
295
296
// self-describing formats.
296
297
let visitor = ContentVisitor { value : PhantomData } ;
297
- deserializer. deserialize_any ( visitor)
298
+ deserializer. __deserialize_content ( actually_private :: T , visitor)
298
299
}
299
300
}
300
301
@@ -1427,6 +1428,18 @@ mod content {
1427
1428
drop ( self ) ;
1428
1429
visitor. visit_unit ( )
1429
1430
}
1431
+
1432
+ fn __deserialize_content < V > (
1433
+ self ,
1434
+ _: actually_private:: T ,
1435
+ visitor : V ,
1436
+ ) -> Result < Content < ' de > , Self :: Error >
1437
+ where
1438
+ V : Visitor < ' de , Value = Content < ' de > > ,
1439
+ {
1440
+ let _ = visitor;
1441
+ Ok ( self . content )
1442
+ }
1430
1443
}
1431
1444
1432
1445
impl < ' de , E > ContentDeserializer < ' de , E > {
@@ -2138,6 +2151,18 @@ mod content {
2138
2151
{
2139
2152
visitor. visit_unit ( )
2140
2153
}
2154
+
2155
+ fn __deserialize_content < V > (
2156
+ self ,
2157
+ _: actually_private:: T ,
2158
+ visitor : V ,
2159
+ ) -> Result < Content < ' de > , Self :: Error >
2160
+ where
2161
+ V : Visitor < ' de , Value = Content < ' de > > ,
2162
+ {
2163
+ let _ = visitor;
2164
+ Ok ( self . content . clone ( ) )
2165
+ }
2141
2166
}
2142
2167
2143
2168
impl < ' a , ' de , E > ContentRefDeserializer < ' a , ' de , E > {
0 commit comments