Skip to content

Commit 221b57d

Browse files
Mingundralley
authored andcommitted
Correctly forward deserialization of tuples to the deserializer's deserialize_seq
1 parent b3ebf7a commit 221b57d

File tree

2 files changed

+44
-90
lines changed

2 files changed

+44
-90
lines changed

src/de/map.rs

Lines changed: 0 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -481,8 +481,6 @@ where
481481
deserialize_primitives!(mut);
482482

483483
forward!(deserialize_unit);
484-
forward!(deserialize_unit_struct(name: &'static str));
485-
forward!(deserialize_newtype_struct(name: &'static str));
486484

487485
forward!(deserialize_map);
488486
forward!(deserialize_struct(
@@ -505,27 +503,6 @@ where
505503
deserialize_option!(self.map.de, self, visitor)
506504
}
507505

508-
/// Tuple representation is the same as [sequences](#method.deserialize_seq).
509-
fn deserialize_tuple<V>(self, _len: usize, visitor: V) -> Result<V::Value, DeError>
510-
where
511-
V: Visitor<'de>,
512-
{
513-
self.deserialize_seq(visitor)
514-
}
515-
516-
/// Named tuple representation is the same as [unnamed tuples](#method.deserialize_tuple).
517-
fn deserialize_tuple_struct<V>(
518-
self,
519-
_name: &'static str,
520-
len: usize,
521-
visitor: V,
522-
) -> Result<V::Value, DeError>
523-
where
524-
V: Visitor<'de>,
525-
{
526-
self.deserialize_tuple(len, visitor)
527-
}
528-
529506
/// Deserializes each `<tag>` in
530507
/// ```xml
531508
/// <any-tag>
@@ -765,8 +742,6 @@ where
765742
deserialize_primitives!(mut);
766743

767744
forward!(deserialize_unit);
768-
forward!(deserialize_unit_struct(name: &'static str));
769-
forward!(deserialize_newtype_struct(name: &'static str));
770745

771746
forward!(deserialize_map);
772747
forward!(deserialize_struct(
@@ -789,27 +764,6 @@ where
789764
deserialize_option!(self.map.de, self, visitor)
790765
}
791766

792-
/// Representation of tuples the same as [sequences](#method.deserialize_seq).
793-
fn deserialize_tuple<V>(self, _len: usize, visitor: V) -> Result<V::Value, DeError>
794-
where
795-
V: Visitor<'de>,
796-
{
797-
self.deserialize_seq(visitor)
798-
}
799-
800-
/// Representation of named tuples the same as [unnamed tuples](#method.deserialize_tuple).
801-
fn deserialize_tuple_struct<V>(
802-
self,
803-
_name: &'static str,
804-
len: usize,
805-
visitor: V,
806-
) -> Result<V::Value, DeError>
807-
where
808-
V: Visitor<'de>,
809-
{
810-
self.deserialize_tuple(len, visitor)
811-
}
812-
813767
/// This method deserializes a sequence inside of element that itself is a
814768
/// sequence element:
815769
///

src/de/mod.rs

Lines changed: 44 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1815,6 +1815,50 @@ macro_rules! deserialize_primitives {
18151815
self.deserialize_bytes(visitor)
18161816
}
18171817

1818+
/// Representation of the named units the same as [unnamed units](#method.deserialize_unit)
1819+
fn deserialize_unit_struct<V>(
1820+
self,
1821+
_name: &'static str,
1822+
visitor: V,
1823+
) -> Result<V::Value, DeError>
1824+
where
1825+
V: Visitor<'de>,
1826+
{
1827+
self.deserialize_unit(visitor)
1828+
}
1829+
1830+
fn deserialize_newtype_struct<V>(
1831+
self,
1832+
_name: &'static str,
1833+
visitor: V,
1834+
) -> Result<V::Value, DeError>
1835+
where
1836+
V: Visitor<'de>,
1837+
{
1838+
self.deserialize_tuple(1, visitor)
1839+
}
1840+
1841+
/// Representation of tuples the same as [sequences](#method.deserialize_seq).
1842+
fn deserialize_tuple<V>(self, _len: usize, visitor: V) -> Result<V::Value, DeError>
1843+
where
1844+
V: Visitor<'de>,
1845+
{
1846+
self.deserialize_seq(visitor)
1847+
}
1848+
1849+
/// Representation of named tuples the same as [unnamed tuples](#method.deserialize_tuple).
1850+
fn deserialize_tuple_struct<V>(
1851+
self,
1852+
_name: &'static str,
1853+
len: usize,
1854+
visitor: V,
1855+
) -> Result<V::Value, DeError>
1856+
where
1857+
V: Visitor<'de>,
1858+
{
1859+
self.deserialize_tuple(len, visitor)
1860+
}
1861+
18181862
/// Identifiers represented as [strings](#method.deserialize_str).
18191863
fn deserialize_identifier<V>(self, visitor: V) -> Result<V::Value, DeError>
18201864
where
@@ -2424,50 +2468,6 @@ where
24242468
}
24252469
}
24262470

2427-
/// Representation of the names units the same as [unnamed units](#method.deserialize_unit)
2428-
fn deserialize_unit_struct<V>(
2429-
self,
2430-
_name: &'static str,
2431-
visitor: V,
2432-
) -> Result<V::Value, DeError>
2433-
where
2434-
V: Visitor<'de>,
2435-
{
2436-
self.deserialize_unit(visitor)
2437-
}
2438-
2439-
fn deserialize_newtype_struct<V>(
2440-
self,
2441-
_name: &'static str,
2442-
visitor: V,
2443-
) -> Result<V::Value, DeError>
2444-
where
2445-
V: Visitor<'de>,
2446-
{
2447-
self.deserialize_tuple(1, visitor)
2448-
}
2449-
2450-
/// Representation of tuples the same as [sequences](#method.deserialize_seq).
2451-
fn deserialize_tuple<V>(self, _len: usize, visitor: V) -> Result<V::Value, DeError>
2452-
where
2453-
V: Visitor<'de>,
2454-
{
2455-
self.deserialize_seq(visitor)
2456-
}
2457-
2458-
/// Representation of named tuples the same as [unnamed tuples](#method.deserialize_tuple).
2459-
fn deserialize_tuple_struct<V>(
2460-
self,
2461-
_name: &'static str,
2462-
len: usize,
2463-
visitor: V,
2464-
) -> Result<V::Value, DeError>
2465-
where
2466-
V: Visitor<'de>,
2467-
{
2468-
self.deserialize_tuple(len, visitor)
2469-
}
2470-
24712471
fn deserialize_enum<V>(
24722472
self,
24732473
_name: &'static str,

0 commit comments

Comments
 (0)