Skip to content

Commit 534a12a

Browse files
authored
Merge pull request #83 from sammhicks/master
De-Escaping strings using a provided buffer
2 parents f54d47f + 9f6af47 commit 534a12a

File tree

11 files changed

+605
-90
lines changed

11 files changed

+605
-90
lines changed

.github/workflows/ci.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ jobs:
2222

2323
include:
2424
# Test MSRV
25-
- rust: 1.62.0 # keep in sync with manifest rust-version
25+
- rust: 1.65.0 # keep in sync with manifest rust-version
2626
TARGET: x86_64-unknown-linux-gnu
2727

2828
# Test nightly but don't fail

CHANGELOG.md

+4
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,16 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
77

88
## [Unreleased]
99

10+
### Breaking
11+
- MSRV is now `1.65.0`.
12+
1013
### Added
1114

1215
- Support for optional package `defmt` which allows for easy conversion for
1316
error types when using tools like `probe-rs` for logging over debuggers.
1417
- Implement `Serializer::collect_str`
1518
- Derive `Serialize` for `de::Error` and `ser::Error`
19+
- Support for deserializing escaped strings.
1620

1721
### Changed
1822

Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ categories = ["no-std"]
44
description = "serde-json for no_std programs"
55
documentation = "https://docs.rs/serde-json-core"
66
edition = "2018"
7-
rust-version = "1.62.0" # keep in sync with ci, src/lib.rs, and README
7+
rust-version = "1.65.0" # keep in sync with ci, src/lib.rs, and README
88
keywords = ["serde", "json"]
99
license = "MIT OR Apache-2.0"
1010
name = "serde-json-core"

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ This project is developed and maintained by the [rust-embedded-community].
1212

1313
## Minimum Supported Rust Version (MSRV)
1414

15-
This crate is guaranteed to compile on stable Rust 1.62.0 and up. It *might*
15+
This crate is guaranteed to compile on stable Rust 1.65.0 and up. It *might*
1616
compile with older versions but that may change in any new patch release.
1717

1818
## License

src/de/enum_.rs

+12-12
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

+8-8
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)