Skip to content

Commit 805718b

Browse files
committed
feat: support serialize unit
Also update example Signed-off-by: Woshiluo Luo <woshiluo.luo@outlook.com>
1 parent 1aa76bd commit 805718b

File tree

2 files changed

+30
-5
lines changed

2 files changed

+30
-5
lines changed

examples/serialize.rs

Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,38 @@ fn main() {
1717
struct Base1 {
1818
pub hello: &'static str,
1919
}
20+
#[derive(Serialize)]
21+
struct ReversedMemory {
22+
#[serde(rename = "#address-cells")]
23+
pub address_cell: u32,
24+
#[serde(rename = "#size-cells")]
25+
pub size_cell: u32,
26+
pub ranges: (),
27+
}
28+
#[derive(Serialize)]
29+
struct ReversedMemoryItem {
30+
pub reg: [u32; 4],
31+
}
2032
let mut buf1 = [0u8; MAX_SIZE];
2133

2234
{
23-
let new_base = Base1 { hello: "added" };
24-
let patch =
25-
serde_device_tree::ser::patch::Patch::new("/base3", &new_base as _, ValueType::Node);
26-
let list = [patch];
35+
let new_base = ReversedMemory {
36+
address_cell: 2,
37+
size_cell: 2,
38+
ranges: (),
39+
};
40+
let new_base_2 = ReversedMemoryItem { reg: [0, 1, 0, 20] };
41+
let patch1 = serde_device_tree::ser::patch::Patch::new(
42+
"/reversed-memory",
43+
&new_base as _,
44+
ValueType::Node,
45+
);
46+
let patch2 = serde_device_tree::ser::patch::Patch::new(
47+
"/reversed-memory/mmode_resv1@0",
48+
&new_base_2 as _,
49+
ValueType::Node,
50+
);
51+
let list = [patch1, patch2];
2752
let base = Base {
2853
hello: 0xdeedbeef,
2954
base1: Base1 {

src/ser/serializer.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -426,7 +426,7 @@ impl<'se> serde::ser::Serializer for Serializer<'_, 'se> {
426426
}
427427

428428
fn serialize_unit(self) -> Result<Self::Ok, Self::Error> {
429-
todo!("unit");
429+
Ok((ValueType::Prop, self.ser.dst.get_offset()))
430430
}
431431

432432
fn serialize_unit_struct(self, _name: &'static str) -> Result<Self::Ok, Self::Error> {

0 commit comments

Comments
 (0)