From 974fe029c18f8bbdc8e7c5c302e3ebfe40a2d97b Mon Sep 17 00:00:00 2001 From: glihm Date: Tue, 10 Dec 2024 16:39:47 -0600 Subject: [PATCH] fix: use reference instead of ownership to parse events --- crates/rs/src/expand/event.rs | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/crates/rs/src/expand/event.rs b/crates/rs/src/expand/event.rs index 364bc49..94e05c5 100644 --- a/crates/rs/src/expand/event.rs +++ b/crates/rs/src/expand/event.rs @@ -24,10 +24,26 @@ impl CairoEnumEvent { let ccs = utils::cainome_cairo_serde(); quote! { - impl TryFrom<#snrs_types::EmittedEvent> for #event_name { + impl TryFrom<&#snrs_types::EmittedEvent> for #event_name { type Error = String; - fn try_from(event: #snrs_types::EmittedEvent) -> Result { + fn try_from(event: &#snrs_types::EmittedEvent) -> Result { + use #ccs::CairoSerde; + + if event.keys.is_empty() { + return Err("Event has no key".to_string()); + } + + #content + + Err(format!("Could not match any event from keys {:?}", event.keys)) + } + } + + impl TryFrom<&#snrs_types::Event> for #event_name { + type Error = String; + + fn try_from(event: &#snrs_types::Event) -> Result { use #ccs::CairoSerde; if event.keys.is_empty() {