1 个不稳定版本
0.1.0 | 2021 年 3 月 28 日 |
---|
#20 在 #crate
15KB
309 行
rhack
您是否想快速将类似于 dbg!
的宏添加到外部 crate 中以了解某些内部数据结构的工作方式?如果是这样,那么 rhack
就是为您准备的!
rhack
可以让您更容易地编辑项目所依赖的外部 crate 的代码。
用法
假设您想修改 reqwest
crate。
[dependencies]
reqwest = "0.11"
运行以下命令:
$ rhack edit reqwest
这将在 $HOME/.rhack/reqwest-0.11.1
中创建 crate 的副本,并将其路径添加到 Cargo.toml 中的 [patch] 部分,路径会自动检测
[patch.crates-io]
reqwest = { path = "/home/you/.rhack/reqwest-0.11.1" }
现在,您的包使用的是本地签出的副本,而不是来自 crates.io 的副本。您现在可以打开文件(通常通过利用“跳转到定义”功能),然后随意修改源代码。
撤销
只需运行 undo
命令,然后您就可以撤销对 Cargo.toml 的所有更改
$ rhack undo
请注意,此命令不会删除任何 crate 的副本。
设置
它默认使用 $HOME/.rhack
作为外部 crate 源代码的副本目的地。您可以通过设置并暴露 $RHACK_DIR
环境变量来更改它。
致谢
这个工具高度受到 gohack 的启发。它清楚地刺激了创作的动力。向他们表示衷心的“谢谢!”
依赖项
~4–13MB
~143K SLoC