#typescript #proc-macro #definition #compose #type #style #import

composite_types

以TypeScript风格进行类型定义

2 个版本

0.1.1 2023年11月5日
0.1.0 2023年11月5日

#1552数据结构

MIT/Apache

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>
}

用法

  1. 使用宏 compose_type!
  2. 像往常一样导入并定义 compose_type! 之外的任何类型
  3. 您可以在 compose_type! 中引用这些类型,但不能与它们组合
  4. compose_type! 中定义结构体,用于组合新类型
  5. compose_type! 之外引用您的新类型并在项目中使用它们

依赖项

~4–5.5MB
~115K SLoC