2 个版本
0.1.1 | 2023年11月5日 |
---|---|
0.1.0 | 2023年11月5日 |
#1552 在 数据结构
50KB
1K SLoC
composite_types
在Rust中引入以TypeScript风格进行的类型定义!
use proc_macro_def::{compose_type};
struct FieldType {}
mod module {
compose_type! {
struct Example {
field: Option<FieldType>
}
struct MyStruct = Required(Example);
struct MyStruct2 = Optional(MyStruct);
pub struct MyStruct3 = Required(MyStruct);
}
const EXAMPLE: MyStruct = MyStruct2 {
field: None
};
}
struct Example2 {
field: Option<MyStruct3>
}
用法
- 使用宏
compose_type!
- 像往常一样导入并定义
compose_type!
之外的任何类型 - 您可以在
compose_type!
中引用这些类型,但不能与它们组合 - 在
compose_type!
中定义结构体,用于组合新类型 - 在
compose_type!
之外引用您的新类型并在项目中使用它们
依赖项
~4–5.5MB
~115K SLoC