@@ -39,6 +39,7 @@ impl<'de> Deserialize<'de> for () {
39
39
}
40
40
41
41
#[ cfg( feature = "unstable" ) ]
42
+ #[ cfg_attr( doc_cfg, doc( cfg( feature = "unstable" ) ) ) ]
42
43
impl < ' de > Deserialize < ' de > for ! {
43
44
fn deserialize < D > ( _deserializer : D ) -> Result < Self , D :: Error >
44
45
where
@@ -596,6 +597,7 @@ impl<'a, 'de> Visitor<'de> for StringInPlaceVisitor<'a> {
596
597
}
597
598
598
599
#[ cfg( any( feature = "std" , feature = "alloc" ) ) ]
600
+ #[ cfg_attr( doc_cfg, doc( cfg( any( feature = "std" , feature = "alloc" ) ) ) ) ]
599
601
impl < ' de > Deserialize < ' de > for String {
600
602
fn deserialize < D > ( deserializer : D ) -> Result < Self , D :: Error >
601
603
where
@@ -739,6 +741,7 @@ impl<'de> Visitor<'de> for CStringVisitor {
739
741
}
740
742
741
743
#[ cfg( any( feature = "std" , all( not( no_core_cstr) , feature = "alloc" ) ) ) ]
744
+ #[ cfg_attr( doc_cfg, doc( cfg( any( feature = "std" , feature = "alloc" ) ) ) ) ]
742
745
impl < ' de > Deserialize < ' de > for CString {
743
746
fn deserialize < D > ( deserializer : D ) -> Result < Self , D :: Error >
744
747
where
@@ -767,6 +770,7 @@ macro_rules! forwarded_impl {
767
770
768
771
forwarded_impl ! {
769
772
#[ cfg( any( feature = "std" , all( not( no_core_cstr) , feature = "alloc" ) ) ) ]
773
+ #[ cfg_attr( doc_cfg, doc( cfg( any( feature = "std" , feature = "alloc" ) ) ) ) ]
770
774
( ) , Box <CStr >, CString :: into_boxed_c_str
771
775
}
772
776
@@ -978,6 +982,7 @@ fn nop_reserve<T>(_seq: T, _n: usize) {}
978
982
979
983
seq_impl ! (
980
984
#[ cfg( any( feature = "std" , feature = "alloc" ) ) ]
985
+ #[ cfg_attr( doc_cfg, doc( cfg( any( feature = "std" , feature = "alloc" ) ) ) ) ]
981
986
BinaryHeap <T : Ord >,
982
987
seq,
983
988
BinaryHeap :: clear,
@@ -988,6 +993,7 @@ seq_impl!(
988
993
989
994
seq_impl ! (
990
995
#[ cfg( any( feature = "std" , feature = "alloc" ) ) ]
996
+ #[ cfg_attr( doc_cfg, doc( cfg( any( feature = "std" , feature = "alloc" ) ) ) ) ]
991
997
BTreeSet <T : Eq + Ord >,
992
998
seq,
993
999
BTreeSet :: clear,
@@ -998,6 +1004,7 @@ seq_impl!(
998
1004
999
1005
seq_impl ! (
1000
1006
#[ cfg( any( feature = "std" , feature = "alloc" ) ) ]
1007
+ #[ cfg_attr( doc_cfg, doc( cfg( any( feature = "std" , feature = "alloc" ) ) ) ) ]
1001
1008
LinkedList <T >,
1002
1009
seq,
1003
1010
LinkedList :: clear,
@@ -1008,6 +1015,7 @@ seq_impl!(
1008
1015
1009
1016
seq_impl ! (
1010
1017
#[ cfg( feature = "std" ) ]
1018
+ #[ cfg_attr( doc_cfg, doc( cfg( feature = "std" ) ) ) ]
1011
1019
HashSet <T : Eq + Hash , S : BuildHasher + Default >,
1012
1020
seq,
1013
1021
HashSet :: clear,
@@ -1018,6 +1026,7 @@ seq_impl!(
1018
1026
1019
1027
seq_impl ! (
1020
1028
#[ cfg( any( feature = "std" , feature = "alloc" ) ) ]
1029
+ #[ cfg_attr( doc_cfg, doc( cfg( any( feature = "std" , feature = "alloc" ) ) ) ) ]
1021
1030
VecDeque <T >,
1022
1031
seq,
1023
1032
VecDeque :: clear,
@@ -1029,6 +1038,7 @@ seq_impl!(
1029
1038
////////////////////////////////////////////////////////////////////////////////
1030
1039
1031
1040
#[ cfg( any( feature = "std" , feature = "alloc" ) ) ]
1041
+ #[ cfg_attr( doc_cfg, doc( cfg( any( feature = "std" , feature = "alloc" ) ) ) ) ]
1032
1042
impl < ' de , T > Deserialize < ' de > for Vec < T >
1033
1043
where
1034
1044
T : Deserialize < ' de > ,
@@ -1432,13 +1442,15 @@ macro_rules! map_impl {
1432
1442
1433
1443
map_impl ! {
1434
1444
#[ cfg( any( feature = "std" , feature = "alloc" ) ) ]
1445
+ #[ cfg_attr( doc_cfg, doc( cfg( any( feature = "std" , feature = "alloc" ) ) ) ) ]
1435
1446
BTreeMap <K : Ord , V >,
1436
1447
map,
1437
1448
BTreeMap :: new( ) ,
1438
1449
}
1439
1450
1440
1451
map_impl ! {
1441
1452
#[ cfg( feature = "std" ) ]
1453
+ #[ cfg_attr( doc_cfg, doc( cfg( feature = "std" ) ) ) ]
1442
1454
HashMap <K : Eq + Hash , V , S : BuildHasher + Default >,
1443
1455
map,
1444
1456
HashMap :: with_capacity_and_hasher( size_hint:: cautious:: <( K , V ) >( map. size_hint( ) ) , S :: default ( ) ) ,
@@ -1580,6 +1592,7 @@ macro_rules! deserialize_enum {
1580
1592
}
1581
1593
1582
1594
#[ cfg( feature = "std" ) ]
1595
+ #[ cfg_attr( doc_cfg, doc( cfg( feature = "std" ) ) ) ]
1583
1596
impl < ' de > Deserialize < ' de > for net:: IpAddr {
1584
1597
fn deserialize < D > ( deserializer : D ) -> Result < Self , D :: Error >
1585
1598
where
@@ -1600,11 +1613,13 @@ impl<'de> Deserialize<'de> for net::IpAddr {
1600
1613
1601
1614
parse_ip_impl ! {
1602
1615
#[ cfg( feature = "std" ) ]
1616
+ #[ cfg_attr( doc_cfg, doc( cfg( feature = "std" ) ) ) ]
1603
1617
net:: Ipv4Addr , "IPv4 address" , 4
1604
1618
}
1605
1619
1606
1620
parse_ip_impl ! {
1607
1621
#[ cfg( feature = "std" ) ]
1622
+ #[ cfg_attr( doc_cfg, doc( cfg( feature = "std" ) ) ) ]
1608
1623
net:: Ipv6Addr , "IPv6 address" , 16
1609
1624
}
1610
1625
@@ -1631,6 +1646,7 @@ macro_rules! parse_socket_impl {
1631
1646
}
1632
1647
1633
1648
#[ cfg( feature = "std" ) ]
1649
+ #[ cfg_attr( doc_cfg, doc( cfg( feature = "std" ) ) ) ]
1634
1650
impl < ' de > Deserialize < ' de > for net:: SocketAddr {
1635
1651
fn deserialize < D > ( deserializer : D ) -> Result < Self , D :: Error >
1636
1652
where
@@ -1651,12 +1667,14 @@ impl<'de> Deserialize<'de> for net::SocketAddr {
1651
1667
1652
1668
parse_socket_impl ! {
1653
1669
#[ cfg( feature = "std" ) ]
1670
+ #[ cfg_attr( doc_cfg, doc( cfg( feature = "std" ) ) ) ]
1654
1671
net:: SocketAddrV4 , "IPv4 socket address" ,
1655
1672
|( ip, port) | net:: SocketAddrV4 :: new( ip, port) ,
1656
1673
}
1657
1674
1658
1675
parse_socket_impl ! {
1659
1676
#[ cfg( feature = "std" ) ]
1677
+ #[ cfg_attr( doc_cfg, doc( cfg( feature = "std" ) ) ) ]
1660
1678
net:: SocketAddrV6 , "IPv6 socket address" ,
1661
1679
|( ip, port) | net:: SocketAddrV6 :: new( ip, port, 0 , 0 ) ,
1662
1680
}
@@ -1692,6 +1710,7 @@ impl<'a> Visitor<'a> for PathVisitor {
1692
1710
}
1693
1711
1694
1712
#[ cfg( feature = "std" ) ]
1713
+ #[ cfg_attr( doc_cfg, doc( cfg( feature = "std" ) ) ) ]
1695
1714
impl < ' de : ' a , ' a > Deserialize < ' de > for & ' a Path {
1696
1715
fn deserialize < D > ( deserializer : D ) -> Result < Self , D :: Error >
1697
1716
where
@@ -1746,6 +1765,7 @@ impl<'de> Visitor<'de> for PathBufVisitor {
1746
1765
}
1747
1766
1748
1767
#[ cfg( feature = "std" ) ]
1768
+ #[ cfg_attr( doc_cfg, doc( cfg( feature = "std" ) ) ) ]
1749
1769
impl < ' de > Deserialize < ' de > for PathBuf {
1750
1770
fn deserialize < D > ( deserializer : D ) -> Result < Self , D :: Error >
1751
1771
where
@@ -1757,6 +1777,7 @@ impl<'de> Deserialize<'de> for PathBuf {
1757
1777
1758
1778
forwarded_impl ! {
1759
1779
#[ cfg( feature = "std" ) ]
1780
+ #[ cfg_attr( doc_cfg, doc( cfg( feature = "std" ) ) ) ]
1760
1781
( ) , Box <Path >, PathBuf :: into_boxed_path
1761
1782
}
1762
1783
@@ -1818,6 +1839,7 @@ impl<'de> Visitor<'de> for OsStringVisitor {
1818
1839
}
1819
1840
1820
1841
#[ cfg( all( feature = "std" , any( unix, windows) ) ) ]
1842
+ #[ cfg_attr( doc_cfg, doc( cfg( all( feature = "std" , any( unix, windows) ) ) ) ) ]
1821
1843
impl < ' de > Deserialize < ' de > for OsString {
1822
1844
fn deserialize < D > ( deserializer : D ) -> Result < Self , D :: Error >
1823
1845
where
@@ -1831,25 +1853,30 @@ impl<'de> Deserialize<'de> for OsString {
1831
1853
1832
1854
forwarded_impl ! {
1833
1855
#[ cfg( any( feature = "std" , feature = "alloc" ) ) ]
1856
+ #[ cfg_attr( doc_cfg, doc( cfg( any( feature = "std" , feature = "alloc" ) ) ) ) ]
1834
1857
( T ) , Box <T >, Box :: new
1835
1858
}
1836
1859
1837
1860
forwarded_impl ! {
1838
1861
#[ cfg( any( feature = "std" , feature = "alloc" ) ) ]
1862
+ #[ cfg_attr( doc_cfg, doc( cfg( any( feature = "std" , feature = "alloc" ) ) ) ) ]
1839
1863
( T ) , Box <[ T ] >, Vec :: into_boxed_slice
1840
1864
}
1841
1865
1842
1866
forwarded_impl ! {
1843
1867
#[ cfg( any( feature = "std" , feature = "alloc" ) ) ]
1868
+ #[ cfg_attr( doc_cfg, doc( cfg( any( feature = "std" , feature = "alloc" ) ) ) ) ]
1844
1869
( ) , Box <str >, String :: into_boxed_str
1845
1870
}
1846
1871
1847
1872
forwarded_impl ! {
1848
1873
#[ cfg( all( feature = "std" , any( unix, windows) ) ) ]
1874
+ #[ cfg_attr( doc_cfg, doc( cfg( all( feature = "std" , any( unix, windows) ) ) ) ) ]
1849
1875
( ) , Box <OsStr >, OsString :: into_boxed_os_str
1850
1876
}
1851
1877
1852
1878
#[ cfg( any( feature = "std" , feature = "alloc" ) ) ]
1879
+ #[ cfg_attr( doc_cfg, doc( cfg( any( feature = "std" , feature = "alloc" ) ) ) ) ]
1853
1880
impl < ' de , ' a , T : ?Sized > Deserialize < ' de > for Cow < ' a , T >
1854
1881
where
1855
1882
T : ToOwned ,
@@ -1871,6 +1898,10 @@ where
1871
1898
///
1872
1899
/// [`"rc"`]: https://serde.rs/feature-flags.html#-features-rc
1873
1900
#[ cfg( all( feature = "rc" , any( feature = "std" , feature = "alloc" ) ) ) ]
1901
+ #[ cfg_attr(
1902
+ doc_cfg,
1903
+ doc( cfg( all( feature = "rc" , any( feature = "std" , feature = "alloc" ) ) ) )
1904
+ ) ]
1874
1905
impl < ' de , T : ?Sized > Deserialize < ' de > for RcWeak < T >
1875
1906
where
1876
1907
T : Deserialize < ' de > ,
@@ -1889,6 +1920,10 @@ where
1889
1920
///
1890
1921
/// [`"rc"`]: https://serde.rs/feature-flags.html#-features-rc
1891
1922
#[ cfg( all( feature = "rc" , any( feature = "std" , feature = "alloc" ) ) ) ]
1923
+ #[ cfg_attr(
1924
+ doc_cfg,
1925
+ doc( cfg( all( feature = "rc" , any( feature = "std" , feature = "alloc" ) ) ) )
1926
+ ) ]
1892
1927
impl < ' de , T : ?Sized > Deserialize < ' de > for ArcWeak < T >
1893
1928
where
1894
1929
T : Deserialize < ' de > ,
@@ -1933,6 +1968,7 @@ box_forwarded_impl! {
1933
1968
///
1934
1969
/// [`"rc"`]: https://serde.rs/feature-flags.html#-features-rc
1935
1970
#[ cfg( all( feature = "rc" , any( feature = "std" , feature = "alloc" ) ) ) ]
1971
+ #[ cfg_attr( doc_cfg, doc( cfg( all( feature = "rc" , any( feature = "std" , feature = "alloc" ) ) ) ) ) ]
1936
1972
Rc
1937
1973
}
1938
1974
@@ -1945,6 +1981,7 @@ box_forwarded_impl! {
1945
1981
///
1946
1982
/// [`"rc"`]: https://serde.rs/feature-flags.html#-features-rc
1947
1983
#[ cfg( all( feature = "rc" , any( feature = "std" , feature = "alloc" ) ) ) ]
1984
+ #[ cfg_attr( doc_cfg, doc( cfg( all( feature = "rc" , any( feature = "std" , feature = "alloc" ) ) ) ) ) ]
1948
1985
Arc
1949
1986
}
1950
1987
@@ -1968,11 +2005,13 @@ forwarded_impl! {
1968
2005
1969
2006
forwarded_impl ! {
1970
2007
#[ cfg( feature = "std" ) ]
2008
+ #[ cfg_attr( doc_cfg, doc( cfg( feature = "std" ) ) ) ]
1971
2009
( T ) , Mutex <T >, Mutex :: new
1972
2010
}
1973
2011
1974
2012
forwarded_impl ! {
1975
2013
#[ cfg( feature = "std" ) ]
2014
+ #[ cfg_attr( doc_cfg, doc( cfg( feature = "std" ) ) ) ]
1976
2015
( T ) , RwLock <T >, RwLock :: new
1977
2016
}
1978
2017
@@ -2127,6 +2166,7 @@ impl<'de> Deserialize<'de> for Duration {
2127
2166
////////////////////////////////////////////////////////////////////////////////
2128
2167
2129
2168
#[ cfg( feature = "std" ) ]
2169
+ #[ cfg_attr( doc_cfg, doc( cfg( feature = "std" ) ) ) ]
2130
2170
impl < ' de > Deserialize < ' de > for SystemTime {
2131
2171
fn deserialize < D > ( deserializer : D ) -> Result < Self , D :: Error >
2132
2172
where
@@ -2962,6 +3002,7 @@ macro_rules! atomic_impl {
2962
3002
( $( $ty: ident $size: expr) * ) => {
2963
3003
$(
2964
3004
#[ cfg( any( no_target_has_atomic, target_has_atomic = $size) ) ]
3005
+ #[ cfg_attr( doc_cfg, doc( cfg( all( feature = "std" , target_has_atomic = $size) ) ) ) ]
2965
3006
impl <' de> Deserialize <' de> for $ty {
2966
3007
fn deserialize<D >( deserializer: D ) -> Result <Self , D :: Error >
2967
3008
where
0 commit comments