Rewrite `impl_runtime_apis!` and `decl_runtime_apis!` as proc-macro (#1174)
* Rewrites `impl_runtime_apis!` macro as `proc-macro`
* Adds some documentation
* Require the `impl_runtime_apis` to use a path for accessing the trait
* Make the runtime implement `GetNodeBlockType`
* Moves first chunk of runtime api code into the `impl_runtime_apis` macro
This also renames `ClientWithApi` into `RuntimeApi`.
* Make `impl_runtime_apis` use `runtime` api version automatically
* `decl_runtime_apis` automatically adds `Block: BlockT` as generic parameter
* Remove function generic arguments in block builder api
* Remove some unnused stuff from the `decl_runtime_apis` macro
* Make `InherentData` working again
* Make `impl_runtime_apis!` implement the `RuntimeApi` side as well
* Make it compile again after rebasing with master
* Split `sr-api-macros` into multiple files
* Reimplement `decl_runtime_apis!` as proc_macro
* Use `decl_runtime_apis!` for `Core` as well and improve error reporting
* Adds documentation for `decl_runtime_apis!` and `impl_runtime_apis!`
* Move some code
* Adds compile fail tests
* Adds a test and fixes some bugs
* Make `impl_runtime_apis!` support `_` as parameter name
* Fixes build errors with wasm
* Wasm rebuild after master rebase
* Apply suggestions from code review
Co-Authored-By:
bkchr <bkchr@users.noreply.github.com>
* Addresses some grumbles
* Adds test to ensure that method signatures need to match
* New wasm files
Showing
- substrate/Cargo.lock 24 additions, 8 deletionssubstrate/Cargo.lock
- substrate/Cargo.toml 1 addition, 1 deletionsubstrate/Cargo.toml
- substrate/core/client/Cargo.toml 1 addition, 0 deletionssubstrate/core/client/Cargo.toml
- substrate/core/client/src/block_builder/api.rs 4 additions, 8 deletionssubstrate/core/client/src/block_builder/api.rs
- substrate/core/client/src/client.rs 6 additions, 6 deletionssubstrate/core/client/src/client.rs
- substrate/core/client/src/lib.rs 5 additions, 0 deletionssubstrate/core/client/src/lib.rs
- substrate/core/client/src/runtime_api.rs 32 additions, 17 deletionssubstrate/core/client/src/runtime_api.rs
- substrate/core/client/src/runtime_api/core.rs 0 additions, 62 deletionssubstrate/core/client/src/runtime_api/core.rs
- substrate/core/client/src/runtime_api/macros.rs 0 additions, 650 deletionssubstrate/core/client/src/runtime_api/macros.rs
- substrate/core/client/src/runtime_api/traits.rs 0 additions, 35 deletionssubstrate/core/client/src/runtime_api/traits.rs
- substrate/core/consensus/aura/src/lib.rs 1 addition, 1 deletionsubstrate/core/consensus/aura/src/lib.rs
- substrate/core/consensus/common/src/lib.rs 0 additions, 19 deletionssubstrate/core/consensus/common/src/lib.rs
- substrate/core/finality-grandpa/primitives/src/lib.rs 2 additions, 2 deletionssubstrate/core/finality-grandpa/primitives/src/lib.rs
- substrate/core/finality-grandpa/src/tests.rs 1 addition, 1 deletionsubstrate/core/finality-grandpa/src/tests.rs
- substrate/core/network/src/import_queue.rs 1 addition, 1 deletionsubstrate/core/network/src/import_queue.rs
- substrate/core/network/src/test/mod.rs 1 addition, 1 deletionsubstrate/core/network/src/test/mod.rs
- substrate/core/service/src/consensus.rs 3 additions, 5 deletionssubstrate/core/service/src/consensus.rs
- substrate/core/sr-api-macros/Cargo.toml 20 additions, 0 deletionssubstrate/core/sr-api-macros/Cargo.toml
- substrate/core/sr-api-macros/src/compile_fail_tests.rs 408 additions, 0 deletionssubstrate/core/sr-api-macros/src/compile_fail_tests.rs
- substrate/core/sr-api-macros/src/decl_runtime_apis.rs 278 additions, 0 deletionssubstrate/core/sr-api-macros/src/decl_runtime_apis.rs
Loading
Please register or sign in to comment