From 2518fd5caabe2ee90f910507ad1dd8c7e0e76a0c Mon Sep 17 00:00:00 2001 From: "Heinz N. Gies" Date: Tue, 27 Aug 2024 16:42:23 +0200 Subject: [PATCH 1/2] Add deserialize method to tape Signed-off-by: Heinz N. Gies --- src/value/tape.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/value/tape.rs b/src/value/tape.rs index c9e0c707..a42ae56b 100644 --- a/src/value/tape.rs +++ b/src/value/tape.rs @@ -33,6 +33,24 @@ impl<'input> Tape<'input> { // so we can safely change the lifetime of the tape to 'new unsafe { std::mem::transmute(self) } } + + /// Deserializes the tape into a type that implements `serde::Deserialize` + /// # Errors + /// Returns an error if the deserialization fails + #[cfg(feature = "serde")] + pub fn deserialize(self) -> crate::Result + where + T: serde::Deserialize<'input>, + { + use crate::Deserializer; + + let mut deserializer = Deserializer { + tape: self.0, + idx: 0, + }; + + T::deserialize(&mut deserializer) + } } /// Wrapper around the tape that allows interaction via a `Value`-like API. From b96d8bc72baaba5e5331e4660f9d0ccc975c84c6 Mon Sep 17 00:00:00 2001 From: "Heinz N. Gies" Date: Tue, 27 Aug 2024 16:49:55 +0200 Subject: [PATCH 2/2] chore: Release simd-json version 0.14.0-rc.3 --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 574cab86..419b0725 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "simd-json" -version = "0.14.0-rc.2" +version = "0.14.0-rc.3" authors = ["Heinz N. Gies ", "Sunny Gleason"] edition = "2021" exclude = ["data/*", "fuzz/*"]