diff --git a/src/read.rs b/src/read.rs
index f8a8da80d..e6ad7809e 100644
--- a/src/read.rs
+++ b/src/read.rs
@@ -111,6 +111,84 @@ pub trait Read<'de>: private::Sealed {
fn set_failed(&mut self, failed: &mut bool);
}
+impl<'de, R: Read<'de>> private::Sealed for &mut R {}
+impl<'de, R: Read<'de>> Read<'de> for &mut R {
+ #[inline]
+ fn next(&mut self) -> Result