diff --git a/test_suite/tests/expand/de_enum.expanded.rs b/test_suite/tests/expand/de_enum.expanded.rs index 14bcd927a..d721ff02f 100644 --- a/test_suite/tests/expand/de_enum.expanded.rs +++ b/test_suite/tests/expand/de_enum.expanded.rs @@ -332,6 +332,25 @@ const _: () = { )), } } + fn visit_borrowed_str<__E>( + self, + __value: &'de str, + ) -> _serde::__private::Result + where + __E: _serde::de::Error, + { + match __value { + "Unit" => _serde::__private::Ok(__Field::__field0), + "Seq" => _serde::__private::Ok(__Field::__field1), + "Map" => _serde::__private::Ok(__Field::__field2), + "_Unit2" => _serde::__private::Ok(__Field::__field3), + "_Seq2" => _serde::__private::Ok(__Field::__field4), + "_Map2" => _serde::__private::Ok(__Field::__field5), + _ => _serde::__private::Err(_serde::de::Error::unknown_variant( + __value, VARIANTS, + )), + } + } fn visit_bytes<__E>( self, __value: &[u8], @@ -354,6 +373,28 @@ const _: () = { } } } + fn visit_borrowed_bytes<__E>( + self, + __value: &'de [u8], + ) -> _serde::__private::Result + where + __E: _serde::de::Error, + { + match __value { + b"Unit" => _serde::__private::Ok(__Field::__field0), + b"Seq" => _serde::__private::Ok(__Field::__field1), + b"Map" => _serde::__private::Ok(__Field::__field2), + b"_Unit2" => _serde::__private::Ok(__Field::__field3), + b"_Seq2" => _serde::__private::Ok(__Field::__field4), + b"_Map2" => _serde::__private::Ok(__Field::__field5), + _ => { + let __value = &_serde::__private::from_utf8_lossy(__value); + _serde::__private::Err(_serde::de::Error::unknown_variant( + __value, VARIANTS, + )) + } + } + } } impl<'de> _serde::Deserialize<'de> for __Field { #[inline] @@ -596,6 +637,21 @@ const _: () = { _ => _serde::__private::Ok(__Field::__ignore), } } + fn visit_borrowed_str<__E>( + self, + __value: &'de str, + ) -> _serde::__private::Result + where + __E: _serde::de::Error, + { + match __value { + "a" => _serde::__private::Ok(__Field::__field0), + "b" => _serde::__private::Ok(__Field::__field1), + "c" => _serde::__private::Ok(__Field::__field2), + "d" => _serde::__private::Ok(__Field::__field3), + _ => _serde::__private::Ok(__Field::__ignore), + } + } fn visit_bytes<__E>( self, __value: &[u8], @@ -611,6 +667,21 @@ const _: () = { _ => _serde::__private::Ok(__Field::__ignore), } } + fn visit_borrowed_bytes<__E>( + self, + __value: &'de [u8], + ) -> _serde::__private::Result + where + __E: _serde::de::Error, + { + match __value { + b"a" => _serde::__private::Ok(__Field::__field0), + b"b" => _serde::__private::Ok(__Field::__field1), + b"c" => _serde::__private::Ok(__Field::__field2), + b"d" => _serde::__private::Ok(__Field::__field3), + _ => _serde::__private::Ok(__Field::__ignore), + } + } } impl<'de> _serde::Deserialize<'de> for __Field { #[inline] @@ -1104,6 +1175,21 @@ const _: () = { _ => _serde::__private::Ok(__Field::__ignore), } } + fn visit_borrowed_str<__E>( + self, + __value: &'de str, + ) -> _serde::__private::Result + where + __E: _serde::de::Error, + { + match __value { + "a" => _serde::__private::Ok(__Field::__field0), + "b" => _serde::__private::Ok(__Field::__field1), + "c" => _serde::__private::Ok(__Field::__field2), + "d" => _serde::__private::Ok(__Field::__field3), + _ => _serde::__private::Ok(__Field::__ignore), + } + } fn visit_bytes<__E>( self, __value: &[u8], @@ -1119,6 +1205,21 @@ const _: () = { _ => _serde::__private::Ok(__Field::__ignore), } } + fn visit_borrowed_bytes<__E>( + self, + __value: &'de [u8], + ) -> _serde::__private::Result + where + __E: _serde::de::Error, + { + match __value { + b"a" => _serde::__private::Ok(__Field::__field0), + b"b" => _serde::__private::Ok(__Field::__field1), + b"c" => _serde::__private::Ok(__Field::__field2), + b"d" => _serde::__private::Ok(__Field::__field3), + _ => _serde::__private::Ok(__Field::__ignore), + } + } } impl<'de> _serde::Deserialize<'de> for __Field { #[inline] diff --git a/test_suite/tests/expand/default_ty_param.expanded.rs b/test_suite/tests/expand/default_ty_param.expanded.rs index ab6f5b6a7..082c6249e 100644 --- a/test_suite/tests/expand/default_ty_param.expanded.rs +++ b/test_suite/tests/expand/default_ty_param.expanded.rs @@ -95,6 +95,18 @@ const _: () = { _ => _serde::__private::Ok(__Field::__ignore), } } + fn visit_borrowed_str<__E>( + self, + __value: &'de str, + ) -> _serde::__private::Result + where + __E: _serde::de::Error, + { + match __value { + "phantom" => _serde::__private::Ok(__Field::__field0), + _ => _serde::__private::Ok(__Field::__ignore), + } + } fn visit_bytes<__E>( self, __value: &[u8], @@ -107,6 +119,18 @@ const _: () = { _ => _serde::__private::Ok(__Field::__ignore), } } + fn visit_borrowed_bytes<__E>( + self, + __value: &'de [u8], + ) -> _serde::__private::Result + where + __E: _serde::de::Error, + { + match __value { + b"phantom" => _serde::__private::Ok(__Field::__field0), + _ => _serde::__private::Ok(__Field::__ignore), + } + } } impl<'de> _serde::Deserialize<'de> for __Field { #[inline] @@ -278,6 +302,18 @@ const _: () = { _ => _serde::__private::Ok(__Field::__ignore), } } + fn visit_borrowed_str<__E>( + self, + __value: &'de str, + ) -> _serde::__private::Result + where + __E: _serde::de::Error, + { + match __value { + "phantom" => _serde::__private::Ok(__Field::__field0), + _ => _serde::__private::Ok(__Field::__ignore), + } + } fn visit_bytes<__E>( self, __value: &[u8], @@ -290,6 +326,18 @@ const _: () = { _ => _serde::__private::Ok(__Field::__ignore), } } + fn visit_borrowed_bytes<__E>( + self, + __value: &'de [u8], + ) -> _serde::__private::Result + where + __E: _serde::de::Error, + { + match __value { + b"phantom" => _serde::__private::Ok(__Field::__field0), + _ => _serde::__private::Ok(__Field::__ignore), + } + } } impl<'de> _serde::Deserialize<'de> for __Field { #[inline] diff --git a/test_suite/tests/expand/generic_enum.expanded.rs b/test_suite/tests/expand/generic_enum.expanded.rs index fae6de11d..627dbf604 100644 --- a/test_suite/tests/expand/generic_enum.expanded.rs +++ b/test_suite/tests/expand/generic_enum.expanded.rs @@ -174,6 +174,23 @@ const _: () = { )), } } + fn visit_borrowed_str<__E>( + self, + __value: &'de str, + ) -> _serde::__private::Result + where + __E: _serde::de::Error, + { + match __value { + "Unit" => _serde::__private::Ok(__Field::__field0), + "NewType" => _serde::__private::Ok(__Field::__field1), + "Seq" => _serde::__private::Ok(__Field::__field2), + "Map" => _serde::__private::Ok(__Field::__field3), + _ => _serde::__private::Err(_serde::de::Error::unknown_variant( + __value, VARIANTS, + )), + } + } fn visit_bytes<__E>( self, __value: &[u8], @@ -194,6 +211,26 @@ const _: () = { } } } + fn visit_borrowed_bytes<__E>( + self, + __value: &'de [u8], + ) -> _serde::__private::Result + where + __E: _serde::de::Error, + { + match __value { + b"Unit" => _serde::__private::Ok(__Field::__field0), + b"NewType" => _serde::__private::Ok(__Field::__field1), + b"Seq" => _serde::__private::Ok(__Field::__field2), + b"Map" => _serde::__private::Ok(__Field::__field3), + _ => { + let __value = &_serde::__private::from_utf8_lossy(__value); + _serde::__private::Err(_serde::de::Error::unknown_variant( + __value, VARIANTS, + )) + } + } + } } impl<'de> _serde::Deserialize<'de> for __Field { #[inline] @@ -378,6 +415,19 @@ const _: () = { _ => _serde::__private::Ok(__Field::__ignore), } } + fn visit_borrowed_str<__E>( + self, + __value: &'de str, + ) -> _serde::__private::Result + where + __E: _serde::de::Error, + { + match __value { + "x" => _serde::__private::Ok(__Field::__field0), + "y" => _serde::__private::Ok(__Field::__field1), + _ => _serde::__private::Ok(__Field::__ignore), + } + } fn visit_bytes<__E>( self, __value: &[u8], @@ -391,6 +441,19 @@ const _: () = { _ => _serde::__private::Ok(__Field::__ignore), } } + fn visit_borrowed_bytes<__E>( + self, + __value: &'de [u8], + ) -> _serde::__private::Result + where + __E: _serde::de::Error, + { + match __value { + b"x" => _serde::__private::Ok(__Field::__field0), + b"y" => _serde::__private::Ok(__Field::__field1), + _ => _serde::__private::Ok(__Field::__ignore), + } + } } impl<'de> _serde::Deserialize<'de> for __Field { #[inline] diff --git a/test_suite/tests/expand/generic_struct.expanded.rs b/test_suite/tests/expand/generic_struct.expanded.rs index 1882a1dd8..9a9162b3a 100644 --- a/test_suite/tests/expand/generic_struct.expanded.rs +++ b/test_suite/tests/expand/generic_struct.expanded.rs @@ -91,6 +91,18 @@ const _: () = { _ => _serde::__private::Ok(__Field::__ignore), } } + fn visit_borrowed_str<__E>( + self, + __value: &'de str, + ) -> _serde::__private::Result + where + __E: _serde::de::Error, + { + match __value { + "x" => _serde::__private::Ok(__Field::__field0), + _ => _serde::__private::Ok(__Field::__ignore), + } + } fn visit_bytes<__E>( self, __value: &[u8], @@ -103,6 +115,18 @@ const _: () = { _ => _serde::__private::Ok(__Field::__ignore), } } + fn visit_borrowed_bytes<__E>( + self, + __value: &'de [u8], + ) -> _serde::__private::Result + where + __E: _serde::de::Error, + { + match __value { + b"x" => _serde::__private::Ok(__Field::__field0), + _ => _serde::__private::Ok(__Field::__ignore), + } + } } impl<'de> _serde::Deserialize<'de> for __Field { #[inline] @@ -274,6 +298,18 @@ const _: () = { _ => _serde::__private::Ok(__Field::__ignore), } } + fn visit_borrowed_str<__E>( + self, + __value: &'de str, + ) -> _serde::__private::Result + where + __E: _serde::de::Error, + { + match __value { + "x" => _serde::__private::Ok(__Field::__field0), + _ => _serde::__private::Ok(__Field::__ignore), + } + } fn visit_bytes<__E>( self, __value: &[u8], @@ -286,6 +322,18 @@ const _: () = { _ => _serde::__private::Ok(__Field::__ignore), } } + fn visit_borrowed_bytes<__E>( + self, + __value: &'de [u8], + ) -> _serde::__private::Result + where + __E: _serde::de::Error, + { + match __value { + b"x" => _serde::__private::Ok(__Field::__field0), + _ => _serde::__private::Ok(__Field::__ignore), + } + } } impl<'de> _serde::Deserialize<'de> for __Field { #[inline] diff --git a/test_suite/tests/expand/lifetimes.expanded.rs b/test_suite/tests/expand/lifetimes.expanded.rs index 1daabf1c2..796a02d23 100644 --- a/test_suite/tests/expand/lifetimes.expanded.rs +++ b/test_suite/tests/expand/lifetimes.expanded.rs @@ -151,6 +151,23 @@ const _: () = { )), } } + fn visit_borrowed_str<__E>( + self, + __value: &'de str, + ) -> _serde::__private::Result + where + __E: _serde::de::Error, + { + match __value { + "LifetimeSeq" => _serde::__private::Ok(__Field::__field0), + "NoLifetimeSeq" => _serde::__private::Ok(__Field::__field1), + "LifetimeMap" => _serde::__private::Ok(__Field::__field2), + "NoLifetimeMap" => _serde::__private::Ok(__Field::__field3), + _ => _serde::__private::Err(_serde::de::Error::unknown_variant( + __value, VARIANTS, + )), + } + } fn visit_bytes<__E>( self, __value: &[u8], @@ -171,6 +188,26 @@ const _: () = { } } } + fn visit_borrowed_bytes<__E>( + self, + __value: &'de [u8], + ) -> _serde::__private::Result + where + __E: _serde::de::Error, + { + match __value { + b"LifetimeSeq" => _serde::__private::Ok(__Field::__field0), + b"NoLifetimeSeq" => _serde::__private::Ok(__Field::__field1), + b"LifetimeMap" => _serde::__private::Ok(__Field::__field2), + b"NoLifetimeMap" => _serde::__private::Ok(__Field::__field3), + _ => { + let __value = &_serde::__private::from_utf8_lossy(__value); + _serde::__private::Err(_serde::de::Error::unknown_variant( + __value, VARIANTS, + )) + } + } + } } impl<'de> _serde::Deserialize<'de> for __Field { #[inline] @@ -264,6 +301,18 @@ const _: () = { _ => _serde::__private::Ok(__Field::__ignore), } } + fn visit_borrowed_str<__E>( + self, + __value: &'de str, + ) -> _serde::__private::Result + where + __E: _serde::de::Error, + { + match __value { + "a" => _serde::__private::Ok(__Field::__field0), + _ => _serde::__private::Ok(__Field::__ignore), + } + } fn visit_bytes<__E>( self, __value: &[u8], @@ -276,6 +325,18 @@ const _: () = { _ => _serde::__private::Ok(__Field::__ignore), } } + fn visit_borrowed_bytes<__E>( + self, + __value: &'de [u8], + ) -> _serde::__private::Result + where + __E: _serde::de::Error, + { + match __value { + b"a" => _serde::__private::Ok(__Field::__field0), + _ => _serde::__private::Ok(__Field::__ignore), + } + } } impl<'de> _serde::Deserialize<'de> for __Field { #[inline] @@ -453,6 +514,18 @@ const _: () = { _ => _serde::__private::Ok(__Field::__ignore), } } + fn visit_borrowed_str<__E>( + self, + __value: &'de str, + ) -> _serde::__private::Result + where + __E: _serde::de::Error, + { + match __value { + "a" => _serde::__private::Ok(__Field::__field0), + _ => _serde::__private::Ok(__Field::__ignore), + } + } fn visit_bytes<__E>( self, __value: &[u8], @@ -465,6 +538,18 @@ const _: () = { _ => _serde::__private::Ok(__Field::__ignore), } } + fn visit_borrowed_bytes<__E>( + self, + __value: &'de [u8], + ) -> _serde::__private::Result + where + __E: _serde::de::Error, + { + match __value { + b"a" => _serde::__private::Ok(__Field::__field0), + _ => _serde::__private::Ok(__Field::__ignore), + } + } } impl<'de> _serde::Deserialize<'de> for __Field { #[inline] diff --git a/test_suite/tests/expand/named_map.expanded.rs b/test_suite/tests/expand/named_map.expanded.rs index 3865b84dd..54d3a0ac0 100644 --- a/test_suite/tests/expand/named_map.expanded.rs +++ b/test_suite/tests/expand/named_map.expanded.rs @@ -120,6 +120,20 @@ const _: () = { _ => _serde::__private::Ok(__Field::__ignore), } } + fn visit_borrowed_str<__E>( + self, + __value: &'de str, + ) -> _serde::__private::Result + where + __E: _serde::de::Error, + { + match __value { + "a" => _serde::__private::Ok(__Field::__field0), + "b" => _serde::__private::Ok(__Field::__field1), + "c" => _serde::__private::Ok(__Field::__field2), + _ => _serde::__private::Ok(__Field::__ignore), + } + } fn visit_bytes<__E>( self, __value: &[u8], @@ -134,6 +148,20 @@ const _: () = { _ => _serde::__private::Ok(__Field::__ignore), } } + fn visit_borrowed_bytes<__E>( + self, + __value: &'de [u8], + ) -> _serde::__private::Result + where + __E: _serde::de::Error, + { + match __value { + b"a" => _serde::__private::Ok(__Field::__field0), + b"b" => _serde::__private::Ok(__Field::__field1), + b"c" => _serde::__private::Ok(__Field::__field2), + _ => _serde::__private::Ok(__Field::__ignore), + } + } } impl<'de> _serde::Deserialize<'de> for __Field { #[inline] @@ -407,6 +435,20 @@ const _: () = { _ => _serde::__private::Ok(__Field::__ignore), } } + fn visit_borrowed_str<__E>( + self, + __value: &'de str, + ) -> _serde::__private::Result + where + __E: _serde::de::Error, + { + match __value { + "a" => _serde::__private::Ok(__Field::__field0), + "b" => _serde::__private::Ok(__Field::__field1), + "c" => _serde::__private::Ok(__Field::__field2), + _ => _serde::__private::Ok(__Field::__ignore), + } + } fn visit_bytes<__E>( self, __value: &[u8], @@ -421,6 +463,20 @@ const _: () = { _ => _serde::__private::Ok(__Field::__ignore), } } + fn visit_borrowed_bytes<__E>( + self, + __value: &'de [u8], + ) -> _serde::__private::Result + where + __E: _serde::de::Error, + { + match __value { + b"a" => _serde::__private::Ok(__Field::__field0), + b"b" => _serde::__private::Ok(__Field::__field1), + b"c" => _serde::__private::Ok(__Field::__field2), + _ => _serde::__private::Ok(__Field::__ignore), + } + } } impl<'de> _serde::Deserialize<'de> for __Field { #[inline] diff --git a/test_suite/tests/expand/void.expanded.rs b/test_suite/tests/expand/void.expanded.rs index 65c3d2c60..e1b3994ee 100644 --- a/test_suite/tests/expand/void.expanded.rs +++ b/test_suite/tests/expand/void.expanded.rs @@ -64,6 +64,19 @@ const _: () = { )), } } + fn visit_borrowed_str<__E>( + self, + __value: &'de str, + ) -> _serde::__private::Result + where + __E: _serde::de::Error, + { + match __value { + _ => _serde::__private::Err(_serde::de::Error::unknown_variant( + __value, VARIANTS, + )), + } + } fn visit_bytes<__E>( self, __value: &[u8], @@ -80,6 +93,22 @@ const _: () = { } } } + fn visit_borrowed_bytes<__E>( + self, + __value: &'de [u8], + ) -> _serde::__private::Result + where + __E: _serde::de::Error, + { + match __value { + _ => { + let __value = &_serde::__private::from_utf8_lossy(__value); + _serde::__private::Err(_serde::de::Error::unknown_variant( + __value, VARIANTS, + )) + } + } + } } impl<'de> _serde::Deserialize<'de> for __Field { #[inline]