@@ -894,7 +894,7 @@ mod content {
894
894
where
895
895
D : Deserializer < ' de > ,
896
896
{
897
- deserializer. deserialize_str ( self )
897
+ deserializer. deserialize_identifier ( self )
898
898
}
899
899
}
900
900
@@ -905,6 +905,20 @@ mod content {
905
905
write ! ( formatter, "{:?} or {:?}" , self . tag, self . content)
906
906
}
907
907
908
+ fn visit_u64 < E > ( self , field_index : u64 ) -> Result < Self :: Value , E >
909
+ where
910
+ E : de:: Error ,
911
+ {
912
+ match field_index {
913
+ 0 => Ok ( TagOrContentField :: Tag ) ,
914
+ 1 => Ok ( TagOrContentField :: Content ) ,
915
+ _ => Err ( de:: Error :: invalid_value (
916
+ Unexpected :: Unsigned ( field_index) ,
917
+ & self ,
918
+ ) ) ,
919
+ }
920
+ }
921
+
908
922
fn visit_str < E > ( self , field : & str ) -> Result < Self :: Value , E >
909
923
where
910
924
E : de:: Error ,
@@ -917,6 +931,19 @@ mod content {
917
931
Err ( de:: Error :: invalid_value ( Unexpected :: Str ( field) , & self ) )
918
932
}
919
933
}
934
+
935
+ fn visit_bytes < E > ( self , field : & [ u8 ] ) -> Result < Self :: Value , E >
936
+ where
937
+ E : de:: Error ,
938
+ {
939
+ if field == self . tag . as_bytes ( ) {
940
+ Ok ( TagOrContentField :: Tag )
941
+ } else if field == self . content . as_bytes ( ) {
942
+ Ok ( TagOrContentField :: Content )
943
+ } else {
944
+ Err ( de:: Error :: invalid_value ( Unexpected :: Bytes ( field) , & self ) )
945
+ }
946
+ }
920
947
}
921
948
922
949
/// Used by generated code to deserialize an adjacently tagged enum when
@@ -942,7 +969,7 @@ mod content {
942
969
where
943
970
D : Deserializer < ' de > ,
944
971
{
945
- deserializer. deserialize_str ( self )
972
+ deserializer. deserialize_identifier ( self )
946
973
}
947
974
}
948
975
@@ -957,6 +984,17 @@ mod content {
957
984
)
958
985
}
959
986
987
+ fn visit_u64 < E > ( self , field_index : u64 ) -> Result < Self :: Value , E >
988
+ where
989
+ E : de:: Error ,
990
+ {
991
+ match field_index {
992
+ 0 => Ok ( TagContentOtherField :: Tag ) ,
993
+ 1 => Ok ( TagContentOtherField :: Content ) ,
994
+ _ => Ok ( TagContentOtherField :: Other ) ,
995
+ }
996
+ }
997
+
960
998
fn visit_str < E > ( self , field : & str ) -> Result < Self :: Value , E >
961
999
where
962
1000
E : de:: Error ,
0 commit comments