1 个不稳定版本
0.0.1 | 2020年1月21日 |
---|
#44 在 #exports
在 dtypei-derive 中使用
3KB
dtypei
为您的 Rust 导出构建接口描述对象。
这是一个正在进行中的项目,当前版本没有安全性保证。欢迎提出建议和贡献。
#[macro_use]
extern crate dtypei_derive;
use dtypei;
#[dtypei_attr()]
pub fn sum(n1: i32, n2: i32) -> i32 {
n1 + n2
}
#[dtypei_enum()]
pub enum Material {
Wood,
Metal,
Plastic,
}
#[dtypei_struct()]
pub struct WoodFinish {
pub sanded: bool,
pub varnished: bool,
pub polished: bool,
}
#[dtypei_struct()]
pub struct Table {
pub id: u64,
pub legs: u8,
pub material: Material,
pub finish: WoodFinish,
}
#[dtypei_attr()]
pub fn polish(mut table: Table) -> Table {
table.finish.polished = true;
table
}
#[dtypei_attr()]
pub fn typedinterface() -> Vec<dtypei::Typei> {
}
使用 dtypei_attr
宏将接口对象填充到 typedinterface
函数中。例如。
[Typei { name: "sum", inputs: [SubTypes { name: "i32", label: "n1", dimensions: [] }, SubTypes { name: "i32", label: "n2", dimensions: [] }], outputs: [SubTypes { name: "sum", label: "i32", dimensions: [] }] }]
当使用 #[wasm_bindgen]
时,使用此宏顺序
#[wasm_bindgen]
#[dtypei_attr()]
pub fn sum(n1: i32, n2: i32) -> i32 {
n1 + n2
}
检查 ./tests
中的示例。
cd tests/dtypeitest
cargo build
cargo run target/debug/dtypeitest
Wasm 测试
cd tests/mathi
wasm-pack build
cd tests/www
npm install
npm run start
检查浏览器日志。
GPLv3 - 查看 ./LICENSE
依赖项
~1.2–2.3MB
~46K SLoC