Clean up code gen a bit

This commit is contained in:
Jonas Platte 2020-03-16 21:22:56 +01:00
parent 8a9bbb8c83
commit ddbb06f21d
No known key found for this signature in database
GPG Key ID: CC154DE0E30B7C67
2 changed files with 8 additions and 11 deletions

View File

@ -246,14 +246,6 @@ impl ToTokens for RumaEvent {
})
.collect();
let set_up_struct_serializer = quote! {
let mut len = #base_field_count;
#(#increment_struct_len_statements)*
let mut state = serializer.serialize_struct(#name_str, len)?;
};
let impl_room_event = match self.kind {
EventKind::RoomEvent | EventKind::StateEvent => {
quote! {
@ -368,16 +360,20 @@ impl ToTokens for RumaEvent {
#impl_event_result_compatible_for_content
use serde::ser::SerializeStruct as _;
impl serde::Serialize for #name {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: serde::Serializer
{
use serde::ser::SerializeStruct as _;
#import_event_in_serialize_impl
#set_up_struct_serializer
let mut len = #base_field_count;
#(#increment_struct_len_statements)*
let mut state = serializer.serialize_struct(#name_str, len)?;
#(#serialize_field_calls)*
#manually_serialize_type_field

View File

@ -8,6 +8,7 @@ use std::{
use ruma_events_macros::ruma_event;
use serde::{
de::{Error, Visitor},
ser::SerializeStruct as _,
Deserialize, Deserializer, Serialize, Serializer,
};
use serde_json::{from_value, Value};