在 toml 中导入带有别名的 rust 包

Import rust package with alias in toml

我正在尝试制作一个简单的程序来检查同一 rust 项目的两个不同分支上的执行时间。

我想让我的 .toml 看起来像这样

[dependencies]
cron_original = { git = "https://github.com/zslayton/cron" }
cron_fork = { git = "https://github.com/koenichiwa/cron", branch = "feature/reimplement-queries"}

我的程序看起来像这样:

fn main() {
    let expression = String::from("0-59 * 0-23 ?/2 1,2-4 ? *");
    let schedule_orig = cron_original::Schedule::from_str(expression);
    let schedule_fork = cron_fork::Schedule::from_str(expression);
    // Check difference in execution times on these structs
}

但我得到 no matching package named 'cron_fork' found。无论如何导入具有特定别名的包?我正在考虑创建一些可以自动执行此类检查的东西。

您需要为这些依赖项指定 package 键,以便 cargo 知道您确实需要这些包,即使您指定了不同的名称也是如此:

[dependencies]
cron_original = { git = "https://github.com/zslayton/cron", package="cron" }
cron_fork = { git = "https://github.com/koenichiwa/cron", branch = "feature/reimplement-queries", package="cron" }

有关详细信息,请参阅 Specifying Dependencies 文档中 Cargo.toml 部分的 重命名依赖项。