@@ -1851,73 +1851,85 @@ impl Config {
1851
1851
}
1852
1852
// Deserialization definitions
1853
1853
1854
- macro_rules! create_bool_or_string_de {
1854
+ macro_rules! create_bool_or_string_serde {
1855
1855
( $ident: ident<$bool: literal, $string: literal>) => {
1856
- fn $ident<' de, D >( d: D ) -> Result <( ) , D :: Error >
1857
- where
1858
- D : serde:: Deserializer <' de>,
1859
- {
1860
- struct V ;
1861
- impl <' de> serde:: de:: Visitor <' de> for V {
1862
- type Value = ( ) ;
1863
-
1864
- fn expecting( & self , formatter: & mut fmt:: Formatter <' _>) -> fmt:: Result {
1865
- formatter. write_str( concat!(
1866
- stringify!( $bool) ,
1867
- " or \" " ,
1868
- stringify!( $string) ,
1869
- "\" "
1870
- ) )
1871
- }
1856
+ mod $ident {
1857
+ pub fn deserialize<' de, D >( d: D ) -> Result <( ) , D :: Error >
1858
+ where
1859
+ D : serde:: Deserializer <' de>,
1860
+ {
1861
+ struct V ;
1862
+ impl <' de> serde:: de:: Visitor <' de> for V {
1863
+ type Value = ( ) ;
1864
+
1865
+ fn expecting(
1866
+ & self ,
1867
+ formatter: & mut std:: fmt:: Formatter <' _>,
1868
+ ) -> std:: fmt:: Result {
1869
+ formatter. write_str( concat!(
1870
+ stringify!( $bool) ,
1871
+ " or \" " ,
1872
+ stringify!( $string) ,
1873
+ "\" "
1874
+ ) )
1875
+ }
1872
1876
1873
- fn visit_bool<E >( self , v: bool ) -> Result <Self :: Value , E >
1874
- where
1875
- E : serde:: de:: Error ,
1876
- {
1877
- match v {
1878
- $bool => Ok ( ( ) ) ,
1879
- _ => Err ( serde:: de:: Error :: invalid_value(
1880
- serde:: de:: Unexpected :: Bool ( v) ,
1881
- & self ,
1882
- ) ) ,
1877
+ fn visit_bool<E >( self , v: bool ) -> Result <Self :: Value , E >
1878
+ where
1879
+ E : serde:: de:: Error ,
1880
+ {
1881
+ match v {
1882
+ $bool => Ok ( ( ) ) ,
1883
+ _ => Err ( serde:: de:: Error :: invalid_value(
1884
+ serde:: de:: Unexpected :: Bool ( v) ,
1885
+ & self ,
1886
+ ) ) ,
1887
+ }
1883
1888
}
1884
- }
1885
1889
1886
- fn visit_str<E >( self , v: & str ) -> Result <Self :: Value , E >
1887
- where
1888
- E : serde:: de:: Error ,
1889
- {
1890
- match v {
1891
- $string => Ok ( ( ) ) ,
1892
- _ => Err ( serde:: de:: Error :: invalid_value(
1893
- serde:: de:: Unexpected :: Str ( v) ,
1894
- & self ,
1895
- ) ) ,
1890
+ fn visit_str<E >( self , v: & str ) -> Result <Self :: Value , E >
1891
+ where
1892
+ E : serde:: de:: Error ,
1893
+ {
1894
+ match v {
1895
+ $string => Ok ( ( ) ) ,
1896
+ _ => Err ( serde:: de:: Error :: invalid_value(
1897
+ serde:: de:: Unexpected :: Str ( v) ,
1898
+ & self ,
1899
+ ) ) ,
1900
+ }
1896
1901
}
1897
- }
1898
1902
1899
- fn visit_enum<A >( self , a: A ) -> Result <Self :: Value , A :: Error >
1900
- where
1901
- A : serde:: de:: EnumAccess <' de>,
1902
- {
1903
- use serde:: de:: VariantAccess ;
1904
- let ( variant, va) = a. variant:: <& ' de str >( ) ?;
1905
- va. unit_variant( ) ?;
1906
- match variant {
1907
- $string => Ok ( ( ) ) ,
1908
- _ => Err ( serde:: de:: Error :: invalid_value(
1909
- serde:: de:: Unexpected :: Str ( variant) ,
1910
- & self ,
1911
- ) ) ,
1903
+ fn visit_enum<A >( self , a: A ) -> Result <Self :: Value , A :: Error >
1904
+ where
1905
+ A : serde:: de:: EnumAccess <' de>,
1906
+ {
1907
+ use serde:: de:: VariantAccess ;
1908
+ let ( variant, va) = a. variant:: <& ' de str >( ) ?;
1909
+ va. unit_variant( ) ?;
1910
+ match variant {
1911
+ $string => Ok ( ( ) ) ,
1912
+ _ => Err ( serde:: de:: Error :: invalid_value(
1913
+ serde:: de:: Unexpected :: Str ( variant) ,
1914
+ & self ,
1915
+ ) ) ,
1916
+ }
1912
1917
}
1913
1918
}
1919
+ d. deserialize_any( V )
1920
+ }
1921
+
1922
+ pub fn serialize<S >( serializer: S ) -> Result <S :: Ok , S :: Error >
1923
+ where
1924
+ S : serde:: Serializer ,
1925
+ {
1926
+ serializer. serialize_str( $string)
1914
1927
}
1915
- d. deserialize_any( V )
1916
1928
}
1917
1929
} ;
1918
1930
}
1919
- create_bool_or_string_de ! ( true_or_always<true , "always" >) ;
1920
- create_bool_or_string_de ! ( false_or_never<false , "never" >) ;
1931
+ create_bool_or_string_serde ! ( true_or_always<true , "always" >) ;
1932
+ create_bool_or_string_serde ! ( false_or_never<false , "never" >) ;
1921
1933
1922
1934
macro_rules! named_unit_variant {
1923
1935
( $variant: ident) => {
@@ -2149,9 +2161,9 @@ enum InvocationLocation {
2149
2161
#[ derive( Serialize , Deserialize , Debug , Clone ) ]
2150
2162
#[ serde( untagged) ]
2151
2163
enum LifetimeElisionDef {
2152
- #[ serde( deserialize_with = "true_or_always" ) ]
2164
+ #[ serde( with = "true_or_always" ) ]
2153
2165
Always ,
2154
- #[ serde( deserialize_with = "false_or_never" ) ]
2166
+ #[ serde( with = "false_or_never" ) ]
2155
2167
Never ,
2156
2168
#[ serde( deserialize_with = "de_unit_v::skip_trivial" ) ]
2157
2169
SkipTrivial ,
@@ -2160,9 +2172,9 @@ enum LifetimeElisionDef {
2160
2172
#[ derive( Serialize , Deserialize , Debug , Clone ) ]
2161
2173
#[ serde( untagged) ]
2162
2174
enum ClosureReturnTypeHintsDef {
2163
- #[ serde( deserialize_with = "true_or_always" ) ]
2175
+ #[ serde( with = "true_or_always" ) ]
2164
2176
Always ,
2165
- #[ serde( deserialize_with = "false_or_never" ) ]
2177
+ #[ serde( with = "false_or_never" ) ]
2166
2178
Never ,
2167
2179
#[ serde( deserialize_with = "de_unit_v::with_block" ) ]
2168
2180
WithBlock ,
@@ -2180,9 +2192,9 @@ enum ClosureStyle {
2180
2192
#[ derive( Serialize , Deserialize , Debug , Clone ) ]
2181
2193
#[ serde( untagged) ]
2182
2194
enum ReborrowHintsDef {
2183
- #[ serde( deserialize_with = "true_or_always" ) ]
2195
+ #[ serde( with = "true_or_always" ) ]
2184
2196
Always ,
2185
- #[ serde( deserialize_with = "false_or_never" ) ]
2197
+ #[ serde( with = "false_or_never" ) ]
2186
2198
Never ,
2187
2199
#[ serde( deserialize_with = "de_unit_v::mutable" ) ]
2188
2200
Mutable ,
@@ -2191,9 +2203,9 @@ enum ReborrowHintsDef {
2191
2203
#[ derive( Serialize , Deserialize , Debug , Clone ) ]
2192
2204
#[ serde( untagged) ]
2193
2205
enum AdjustmentHintsDef {
2194
- #[ serde( deserialize_with = "true_or_always" ) ]
2206
+ #[ serde( with = "true_or_always" ) ]
2195
2207
Always ,
2196
- #[ serde( deserialize_with = "false_or_never" ) ]
2208
+ #[ serde( with = "false_or_never" ) ]
2197
2209
Never ,
2198
2210
#[ serde( deserialize_with = "de_unit_v::reborrow" ) ]
2199
2211
Reborrow ,
@@ -2202,9 +2214,9 @@ enum AdjustmentHintsDef {
2202
2214
#[ derive( Serialize , Deserialize , Debug , Clone ) ]
2203
2215
#[ serde( untagged) ]
2204
2216
enum DiscriminantHintsDef {
2205
- #[ serde( deserialize_with = "true_or_always" ) ]
2217
+ #[ serde( with = "true_or_always" ) ]
2206
2218
Always ,
2207
- #[ serde( deserialize_with = "false_or_never" ) ]
2219
+ #[ serde( with = "false_or_never" ) ]
2208
2220
Never ,
2209
2221
#[ serde( deserialize_with = "de_unit_v::fieldless" ) ]
2210
2222
Fieldless ,
0 commit comments