Skip to content

Commit 4d22c45

Browse files
committed
feat: add no_std support for ser
Signed-off-by: Woshiluo Luo <woshiluo.luo@outlook.com>
1 parent 2cb1ea6 commit 4d22c45

File tree

3 files changed

+13
-5
lines changed

3 files changed

+13
-5
lines changed

Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@ edition = "2024"
1515

1616
[dependencies]
1717
serde = { version = "1.0", default-features = false, features = ["derive"] }
18-
erased-serde = { version = "0.4", optional = true }
18+
dyn_serde = { version = "1.0.2", default-features = false, optional = true }
1919

2020
[features]
2121
default = ["std", "ser"]
2222

23-
ser = ["dep:erased-serde"]
23+
ser = ["dep:dyn_serde"]
2424
std = ["serde/std"]
2525
alloc = ["serde/alloc"]

src/ser/patch.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use core::cell::Cell;
44
/// Since this crate is mostly work with `noalloc`, we use `Patch` and `PatchList` for change or
55
/// add on a dtb.
66
pub struct Patch<'se> {
7-
pub data: &'se dyn erased_serde::Serialize,
7+
pub data: &'se dyn dyn_serde::Serialize,
88
name: &'se str,
99

1010
/// This patch match how many item between its path and serializer.
@@ -15,7 +15,7 @@ pub struct Patch<'se> {
1515

1616
impl<'se> Patch<'se> {
1717
#[inline(always)]
18-
pub fn new(name: &'se str, data: &'se dyn erased_serde::Serialize) -> Patch<'se> {
18+
pub fn new(name: &'se str, data: &'se dyn dyn_serde::Serialize) -> Patch<'se> {
1919
Patch {
2020
name,
2121
data,
@@ -51,7 +51,7 @@ impl<'se> Patch<'se> {
5151
pub fn serialize(&self, serializer: &mut Serializer<'se>) {
5252
self.parsed.set(true);
5353
self.data
54-
.erased_serialize(&mut <dyn erased_serde::Serializer>::erase(serializer))
54+
.serialize_dyn(&mut <dyn dyn_serde::Serializer>::new(serializer))
5555
.unwrap();
5656
}
5757
}

src/ser/serializer.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -446,6 +446,14 @@ impl<'se> serde::ser::Serializer for &mut Serializer<'se> {
446446
) -> Result<Self::SerializeStructVariant, Self::Error> {
447447
todo!("struct variant");
448448
}
449+
450+
#[cfg(not(feature = "std"))]
451+
fn collect_str<T>(self, _value: &T) -> Result<Self::Ok, Self::Error>
452+
where
453+
T: ?Sized + core::fmt::Display,
454+
{
455+
todo!()
456+
}
449457
}
450458

451459
#[cfg(test)]

0 commit comments

Comments
 (0)