7 个稳定版本
9.0.0 | 2021 年 7 月 28 日 |
---|---|
8.0.0 | 2021 年 7 月 28 日 |
7.5.0 | 2021 年 3 月 24 日 |
7.4.0 | 2020 年 6 月 24 日 |
7.1.0 | 2019 年 12 月 4 日 |
在 #evmc 中排名第 3
55KB
1K SLoC
evmc-declare
这是对 EVMC 的 Rust 接口。
此包包含一个声明宏,用于轻松创建与 EVMC 兼容的 VM 实现。
lib.rs
:
evmc-declare 是一个属性风格的程序宏,用于自动生成 EVMC API 的 FFI 代码,并尽可能减少样板代码。
evmc-declare 可以通过将属性应用于实现来自 evmc-vm crate 的 EvmcVm
特质的任何结构来使用。
该宏接受三个参数:一个有效的 UTF-8 风格的 VM 名称,一个以逗号分隔的能力列表,以及一个版本字符串。
示例
#[evmc_declare::evmc_declare_vm("This is an example VM name", "ewasm, evm", "1.2.3-custom")]
pub struct ExampleVM;
impl evmc_vm::EvmcVm for ExampleVM {
fn init() -> Self {
ExampleVM {}
}
fn execute(&self, revision: evmc_vm::ffi::evmc_revision, code: &[u8], message: &evmc_vm::ExecutionMessage, context: Option<&mut evmc_vm::ExecutionContext>) -> evmc_vm::ExecutionResult {
evmc_vm::ExecutionResult::success(1337, None)
}
}
依赖关系
~1.7–4MB
~77K SLoC