Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add an attribute macro for trait impls that extern the trait fns #109

Merged
merged 52 commits into from
Jun 17, 2022

Conversation

leighmcculloch
Copy link
Member

@leighmcculloch leighmcculloch commented May 28, 2022

What

Add an attribute macro for trait implementations that creates extern fns for each fns in the trait being implemented.

Why

To reuse Rust traits as a way to specify the public API of a contract, to share that API with others, and to leverage the Rust compiler to validate a contract interface. See #42 for further discussion.

Close #114

Known limitations

This PR is incomplete, a WIP, starting with the attribute macro previously attempted from #9.

@leighmcculloch leighmcculloch changed the title Add an attribute macro for trait impls that extern the pub fns Add an attribute macro for trait impls that extern the trait fns May 28, 2022
@leighmcculloch leighmcculloch marked this pull request as ready for review June 17, 2022 16:12
@leighmcculloch
Copy link
Member Author

This is very incomplete, but I'm going to merge this so that we can start using it. It has enough functionality to generate extern functions, and it fills a custom section containing some bogus strings that aren't super useful, but will be replaced by XDR in following PRs.

@leighmcculloch leighmcculloch enabled auto-merge (squash) June 17, 2022 16:59
@leighmcculloch leighmcculloch merged commit 3bbbd29 into main Jun 17, 2022
@leighmcculloch leighmcculloch deleted the attr branch June 17, 2022 17:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
1 participant