@@ -206,6 +206,7 @@ mod content {
206206 use lib:: * ;
207207
208208 use __private:: size_hint;
209+ use actually_private;
209210 use de:: {
210211 self , Deserialize , DeserializeSeed , Deserializer , EnumAccess , Expected , IgnoredAny ,
211212 MapAccess , SeqAccess , Unexpected , Visitor ,
@@ -215,7 +216,7 @@ mod content {
215216 /// deserializing untagged enums and internally tagged enums.
216217 ///
217218 /// Not public API. Use serde-value instead.
218- #[ derive( Debug ) ]
219+ #[ derive( Debug , Clone ) ]
219220 pub enum Content < ' de > {
220221 Bool ( bool ) ,
221222
@@ -294,7 +295,7 @@ mod content {
294295 // Untagged and internally tagged enums are only supported in
295296 // self-describing formats.
296297 let visitor = ContentVisitor { value : PhantomData } ;
297- deserializer. deserialize_any ( visitor)
298+ deserializer. __deserialize_content ( actually_private :: T , visitor)
298299 }
299300 }
300301
@@ -1427,6 +1428,18 @@ mod content {
14271428 drop ( self ) ;
14281429 visitor. visit_unit ( )
14291430 }
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+ }
14301443 }
14311444
14321445 impl < ' de , E > ContentDeserializer < ' de , E > {
@@ -2138,6 +2151,18 @@ mod content {
21382151 {
21392152 visitor. visit_unit ( )
21402153 }
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+ }
21412166 }
21422167
21432168 impl < ' a , ' de , E > ContentRefDeserializer < ' a , ' de , E > {
0 commit comments