7 个版本
新 0.0.6-a | 2024年8月19日 |
---|---|
0.0.5-a | 2024年8月19日 |
0.0.1-a | 2024年7月30日 |
#898 在 开发工具 中
每月 619 次下载
18KB
Ronky - 将 Rust 定义导出到其他语言的简单方法
示例
还有很多工作要做,但以下是一个简单示例,说明我的想法。
以下代码及其输出
#[derive(Export)]
struct Human {
name: String,
age: u32,
friends: Vec<Human>,
pets: Vec<Pet>,
}
#[derive(Export)]
struct Pet {
name: String,
species: String,
}
结果如下 JSON
{
"types": [
{
"name": "Human",
"fields": [
{
"name": "name",
"type": "String"
},
{
"name": "age",
"type": "u32"
},
{
"name": "friends",
"type": "list"
"of": ["Human"],
},
{
"name": "pets",
"type": "list"
"of": ["Pet"],
}
]
},
{
"name": "Pet",
"fields": [
{
"name": "name",
"type": "String"
},
{
"name": "species",
"type": "String"
}
]
}
]
}
然后可以转换为以下 TypeScript(或任何支持的语言)
interface Human {
name: string;
age: number;
friends: Human[];
pets: Pet[];
}
interface Pet {
name: string;
species: string;
}
依赖项
~0.8–1.6MB
~36K SLoC