[Feature] Implement `sol-types` traits in `sol!` without tuples
Open
enhancement
- Dominant language
- Rust
- Stars
- 966
- Forks
- 274
- Avg merge
- 1d 21h
- Merged PRs (30d)
- 15
Description
### Component
sol! macro
### Describe the feature you would like
Currently we implement all traits by deferring everything to a tuple of the inner types (struct, function arguments and returns, etc.).
This is bad because it:
- duplicates the underlying types
- has lower runtime performance due to needing to clone the types to then just use the tuple by reference
- complicates the API
- limits the number of struct fields, function arguments etc allowed to the max tuple size implemented by the library
- overall, it's just not how you implement procedural macros :smile_cat:
### Additional context
_No response_
Contributor guide
Assessment
This issue has not been assessed yet.