From 24d694afe248cfefb6ad3a5dd27f4e0dc2be97dd Mon Sep 17 00:00:00 2001 From: Erik Friese Date: Wed, 30 Aug 2023 15:49:25 +0200 Subject: [PATCH] storing unknown fields --- betterproto-extras/src/merging.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/betterproto-extras/src/merging.rs b/betterproto-extras/src/merging.rs index 7f4d86a..6f13084 100644 --- a/betterproto-extras/src/merging.rs +++ b/betterproto-extras/src/merging.rs @@ -14,6 +14,19 @@ pub fn merge_msg_into_pyobj(obj: &PyAny, mut msg: DynamicMessage) -> Result<()> map_field_value(field_name, field.1, proto_meta)?, )?; } + + let mut buf = vec![]; + for field in msg.unknown_fields() { + field.encode(&mut buf); + } + if !buf.is_empty() { + let mut unknown_fields = obj.getattr("_unknown_fields")?.extract::>()?; + unknown_fields.append(&mut buf); + obj.setattr("_unknown_fields", unknown_fields)?; + } + + obj.setattr("_serialized_on_wire", true)?; + Ok(()) }