Skip to content

Commit

Permalink
Allow different constructor name (#264)
Browse files Browse the repository at this point in the history
  • Loading branch information
yanganto committed Dec 6, 2021
1 parent 8f5cfb6 commit 20aadda
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 8 deletions.
4 changes: 2 additions & 2 deletions cargo-sewup/src/build.rs
Expand Up @@ -107,7 +107,7 @@ async fn build_wat(
format!(
r#"
(export "memory" (memory 0))
(func (export "main") call $constructor i32.const 0 i32.const {} call {})"#,
(func (export "main") call $__constructor i32.const 0 i32.const {} call {})"#,
bin_size, eth_finish_sig
)
} else {
Expand All @@ -124,7 +124,7 @@ async fn build_wat(
format!(
r#"
(export "memory" (memory 0))
(func (export "main") call $constructor i32.const 0 i32.const {} call $_Eth_Finish)
(func (export "main") call $__constructor i32.const 0 i32.const {} call $_Eth_Finish)
"#,
bin_size
)
Expand Down
2 changes: 1 addition & 1 deletion examples/kv-contract/src/lib.rs
Expand Up @@ -17,7 +17,7 @@ pub struct Pair(pub u32, pub Vec<u8>);
pub struct SimpleStructPair(pub String, pub bool, pub String);

#[ewasm_constructor]
fn constructor() {
fn setup() {
use sewup::types::{Raw, Row};
let mut storage =
sewup::kv::Store::new().expect("there is no return for constructor currently");
Expand Down
10 changes: 5 additions & 5 deletions sewup-derive/src/lib.rs
Expand Up @@ -321,10 +321,10 @@ pub fn ewasm_fn(attr: TokenStream, item: TokenStream) -> TokenStream {
#[proc_macro_error]
#[proc_macro_attribute]
pub fn ewasm_constructor(_attr: TokenStream, item: TokenStream) -> TokenStream {
let input = syn::parse_macro_input!(item as syn::ItemFn);
let name = &input.sig.ident;
if *name != "constructor" {
abort!(input.sig.ident, "please name the function as `constructor`");
let mut input = syn::parse_macro_input!(item as syn::ItemFn);
let default_name = Ident::new("__constructor", Span::call_site());
if input.sig.ident != "__constructor" {
input.sig.ident = default_name;
}
let result = quote! {
#[cfg(target_arch = "wasm32")]
Expand All @@ -336,7 +336,7 @@ pub fn ewasm_constructor(_attr: TokenStream, item: TokenStream) -> TokenStream {
#[cfg(feature = "constructor-test")]
#[no_mangle]
pub fn main() {
#name();
__constructor();
}
};
result.into()
Expand Down

0 comments on commit 20aadda

Please sign in to comment.