Skip to content

Commit a3851a4

Browse files
committed
De-Escaping strings using a provided buffer
1 parent 9327a14 commit a3851a4

File tree

7 files changed

+203
-63
lines changed

7 files changed

+203
-63
lines changed

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ ryu = "1.0.5"
1717

1818
[dependencies.heapless]
1919
version = "0.8"
20+
features = ["serde"]
2021
optional = true
2122

2223
[dependencies.serde]

src/de/enum_.rs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,17 @@ use serde::de;
22

33
use crate::de::{Deserializer, Error, Result};
44

5-
pub(crate) struct UnitVariantAccess<'a, 'b> {
6-
de: &'a mut Deserializer<'b>,
5+
pub(crate) struct UnitVariantAccess<'a, 'b, 's> {
6+
de: &'a mut Deserializer<'b, 's>,
77
}
88

9-
impl<'a, 'b> UnitVariantAccess<'a, 'b> {
10-
pub(crate) fn new(de: &'a mut Deserializer<'b>) -> Self {
9+
impl<'a, 'b, 's> UnitVariantAccess<'a, 'b, 's> {
10+
pub(crate) fn new(de: &'a mut Deserializer<'b, 's>) -> Self {
1111
UnitVariantAccess { de }
1212
}
1313
}
1414

15-
impl<'a, 'de> de::EnumAccess<'de> for UnitVariantAccess<'a, 'de> {
15+
impl<'a, 'de, 's> de::EnumAccess<'de> for UnitVariantAccess<'a, 'de, 's> {
1616
type Error = Error;
1717
type Variant = Self;
1818

@@ -25,7 +25,7 @@ impl<'a, 'de> de::EnumAccess<'de> for UnitVariantAccess<'a, 'de> {
2525
}
2626
}
2727

28-
impl<'de, 'a> de::VariantAccess<'de> for UnitVariantAccess<'a, 'de> {
28+
impl<'de, 'a, 's> de::VariantAccess<'de> for UnitVariantAccess<'a, 'de, 's> {
2929
type Error = Error;
3030

3131
fn unit_variant(self) -> Result<()> {
@@ -54,17 +54,17 @@ impl<'de, 'a> de::VariantAccess<'de> for UnitVariantAccess<'a, 'de> {
5454
}
5555
}
5656

57-
pub(crate) struct VariantAccess<'a, 'b> {
58-
de: &'a mut Deserializer<'b>,
57+
pub(crate) struct VariantAccess<'a, 'b, 's> {
58+
de: &'a mut Deserializer<'b, 's>,
5959
}
6060

61-
impl<'a, 'b> VariantAccess<'a, 'b> {
62-
pub(crate) fn new(de: &'a mut Deserializer<'b>) -> Self {
61+
impl<'a, 'b, 's> VariantAccess<'a, 'b, 's> {
62+
pub(crate) fn new(de: &'a mut Deserializer<'b, 's>) -> Self {
6363
VariantAccess { de }
6464
}
6565
}
6666

67-
impl<'a, 'de> de::EnumAccess<'de> for VariantAccess<'a, 'de> {
67+
impl<'a, 'de, 's> de::EnumAccess<'de> for VariantAccess<'a, 'de, 's> {
6868
type Error = Error;
6969
type Variant = Self;
7070

@@ -78,7 +78,7 @@ impl<'a, 'de> de::EnumAccess<'de> for VariantAccess<'a, 'de> {
7878
}
7979
}
8080

81-
impl<'de, 'a> de::VariantAccess<'de> for VariantAccess<'a, 'de> {
81+
impl<'de, 'a, 's> de::VariantAccess<'de> for VariantAccess<'a, 'de, 's> {
8282
type Error = Error;
8383

8484
fn unit_variant(self) -> Result<()> {

src/de/map.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,18 @@ use serde::de::{self, Visitor};
22

33
use crate::de::{Deserializer, Error};
44

5-
pub struct MapAccess<'a, 'b> {
6-
de: &'a mut Deserializer<'b>,
5+
pub struct MapAccess<'a, 'b, 's> {
6+
de: &'a mut Deserializer<'b, 's>,
77
first: bool,
88
}
99

10-
impl<'a, 'b> MapAccess<'a, 'b> {
11-
pub(crate) fn new(de: &'a mut Deserializer<'b>) -> Self {
10+
impl<'a, 'b, 's> MapAccess<'a, 'b, 's> {
11+
pub(crate) fn new(de: &'a mut Deserializer<'b, 's>) -> Self {
1212
MapAccess { de, first: true }
1313
}
1414
}
1515

16-
impl<'a, 'de> de::MapAccess<'de> for MapAccess<'a, 'de> {
16+
impl<'a, 'de, 's> de::MapAccess<'de> for MapAccess<'a, 'de, 's> {
1717
type Error = Error;
1818

1919
fn next_key_seed<K>(&mut self, seed: K) -> Result<Option<K::Value>, Error>
@@ -57,11 +57,11 @@ impl<'a, 'de> de::MapAccess<'de> for MapAccess<'a, 'de> {
5757
}
5858
}
5959

60-
struct MapKey<'a, 'b> {
61-
de: &'a mut Deserializer<'b>,
60+
struct MapKey<'a, 'b, 's> {
61+
de: &'a mut Deserializer<'b, 's>,
6262
}
6363

64-
impl<'de, 'a> de::Deserializer<'de> for MapKey<'a, 'de> {
64+
impl<'de, 'a, 's> de::Deserializer<'de> for MapKey<'a, 'de, 's> {
6565
type Error = Error;
6666

6767
fn deserialize_any<V>(self, _visitor: V) -> Result<V::Value, Error>

0 commit comments

Comments
 (0)