diff --git a/sdk-builder/src/main.rs b/sdk-builder/src/main.rs index b372a45..9a37561 100644 --- a/sdk-builder/src/main.rs +++ b/sdk-builder/src/main.rs @@ -590,14 +590,16 @@ pub mod rust { fn generate_struct_ctor( &self, _class: &Class, - _name: &str, + type_name: &str, fields: &Vec<(&ClassField, Cow, String)>, ) -> TokenStream { let fields_defs = fields.iter().map(|(_, name, ty)| quote! {#name: #ty}); let this_field_asignments = fields.iter().map(|(_, name, _ty)| { let setter = format_ident!("set_{}", name); - quote! {this.#setter(#name);} + let field_trait = format_ident!("{type_name}Fields"); + + quote! {::#setter(this, #name);} }); // FIXME: handle super struct fields aswell, ARK doesnt seem to have those anyways. @@ -696,8 +698,6 @@ pub mod rust { impl #method_trait for #name {} }; - // TODO: impl super-type fields and methods. - let mut sup = class.super_class; let super_traits = core::iter::from_fn(|| { if let Some(key) = sup {