20 个版本 (12 个稳定版)
1.10.0-beta.7 | 2024年7月23日 |
---|---|
1.10.0-beta.4 | 2024年5月28日 |
1.8.0 | 2024年2月28日 |
1.7.0 | 2023年8月11日 |
1.0.0 | 2022年11月22日 |
#530 in 过程宏
3,621 每月下载量
用于 typeshare-cli
400KB
11K SLoC
typeshare-core
Typeshare背后的核心库,包含类型定义、解析和代码生成。
格式化
格式化代码很难。真的,真的很困难。Typeshare碰巧是一个需要生成多语言精美格式化代码的程序。
为了避免完美格式化代码的复杂性,Typeshare采用了生成“尽力而为”输出的方法,然后将其通过每个语言的相应格式化工具进行处理。这使得Typeshare的输出每次都符合语言开发者的预期,我们方面的努力最小。
因此,生成良好格式的输出需要您在运行Typeshare时安装并可用每个语言的适当格式化工具。如果您没有这些工具,Typeshare的默认(不那么美观)输出将被使用。
测试
Typeshare的测试套件建立在快照测试的概念之上,这是一种数据驱动的测试方法,旨在使在代码库中实施大型、全面的变化变得快速且痛苦。
测试在tests/snapshot_tests.rs
中定义的宏内部声明。一旦声明了测试,运行
env UPDATE_EXPECT=1 cargo test -p typeshare-core
This will generate the the folder for the new test (inside of data/tests
) along with starter files inside of it. Save whatever Rust source input you'd like to test in the input.rs
file. Then, run the command again
env UPDATE_EXPECT=1 cargo test -p typeshare-core
各种输出文件将根据给定的输入使用typeshare的当前输出进行更新。如果您对输出满意,则继续;如果不满意,请对typeshare进行修改,直到输出有意义,每次更新预期输出时都要重新运行上述命令。
当然,可以在不更新任何预期的情况下正常运行测试套件。
cargo test -p typeshare-core
如果您需要仅更新特定测试的预期,请运行以下命令(将您的测试名称替换为最后一个参数)
env UPDATE_EXPECT=1 cargo test -p typeshare-core --test snapshot_tests -- can_handle_serde_rename_all::swift
快照测试文件中存储的数据是typeshare的输出,未经修改。
这将将output_formatted.(ts|kt|swift)
文件写入每个存储的快照文件旁边。
依赖关系
~0.8-1.2MB
~26K SLoC