From 4555845131c3e9a405938c7a391cc0414c76e532 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=BD=D0=B0=D0=B1?= Date: Sat, 25 Jul 2026 00:41:28 +0200 Subject: [PATCH 1/2] Deserializer::get_ref() returns the original slice, not the underlying reader Sponsored-by: https://beaverlabs.net --- rmp-serde/src/decode.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rmp-serde/src/decode.rs b/rmp-serde/src/decode.rs index 2c71e3bc..4ecb59f6 100644 --- a/rmp-serde/src/decode.rs +++ b/rmp-serde/src/decode.rs @@ -295,7 +295,7 @@ where } } - /// Gets a reference to the underlying reader in this decoder. + /// Gets a reference to the original slice #[inline(always)] #[must_use] pub fn get_ref(&self) -> &R { From 1e3d2176180105a86e7624b7c7c1b254dbc9664a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=BD=D0=B0=D0=B1?= Date: Sat, 25 Jul 2026 00:42:32 +0200 Subject: [PATCH 2/2] Deserializer: expose previously-unreachable ReadRefReader::remaining_slice() Sponsored-by: https://beaverlabs.net --- rmp-serde/src/decode.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/rmp-serde/src/decode.rs b/rmp-serde/src/decode.rs index 4ecb59f6..0ffb3cef 100644 --- a/rmp-serde/src/decode.rs +++ b/rmp-serde/src/decode.rs @@ -301,6 +301,13 @@ where pub fn get_ref(&self) -> &R { self.rd.whole_slice } + + /// Returns the part that hasn't been consumed yet + #[inline(always)] + #[must_use] + pub fn remaining_slice(&self) -> &'de [u8] { + self.rd.remaining_slice() + } } impl<'de, R: ReadSlice<'de>, C: SerializerConfig> Deserializer { @@ -1071,7 +1078,7 @@ pub struct ReadRefReader<'a, R: ?Sized> { buf: &'a [u8], } -impl<'a, T> ReadRefReader<'a, T> { +impl<'a, T: ?Sized> ReadRefReader<'a, T> { /// Returns the part that hasn't been consumed yet #[must_use] pub const fn remaining_slice(&self) -> &'a [u8] {