ethbind_rust/gen/
event.rs1use ethbind_json::Parameter;
2use heck::ToSnakeCase;
3use proc_macro2::TokenStream;
4use quote::{format_ident, quote};
5
6use crate::RustGenerator;
7
8impl RustGenerator {
9 pub(crate) fn to_event_field_list<R: ethbind_gen::RuntimeBinder>(
10 &self,
11 runtime_binder: &mut R,
12 params: &[Parameter],
13 ) -> anyhow::Result<Vec<TokenStream>> {
14 let mut token_streams = vec![];
15
16 for (index, param) in params.iter().enumerate() {
17 let type_ident = self.to_rust_type(runtime_binder, param)?;
18
19 let var_ident = if param.name != "" {
20 format_ident!("{}", param.name.to_snake_case())
21 } else {
22 format_ident!("p{}", index)
23 };
24
25 token_streams.push(quote!(#var_ident: #type_ident));
26 }
27
28 Ok(token_streams)
29 }
30}