如何在 Rust 2018 中为 crate 指定别名?

2024-02-15

我有一个箱子foo_sys。在 Rust 2015 中我使用了extern crate foo_sys as foo为了方便起见,但在 Rust 2018 中extern crate不再需要,我不想仅将它用于别名。掉落时extern crate, I get

error[E0463] https://doc.rust-lang.org/error-index.html#E0463: 找不到箱子foo


这可以通过以下方式实现重命名依赖 https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html?highlight=rename,depende#renaming-dependencies-in-cargotoml货物功能,Rust 1.31 中可用 https://blog.rust-lang.org/2018/12/06/Rust-1.31-and-rust-2018.html#cargo-features。通过此功能,可以为依赖项提供包属性:

重命名依赖项功能允许您导入与源名称不同的依赖项。这在某些情况下很有用:

  • 取决于来自不同注册中心的同名板条箱。
  • 取决于板条箱的多个版本。
  • 避免需要extern crate foo as bar在 Rust 源码中。

而不是写作

[dependencies]
foo_sys = "0.2"

the packagekey 可以添加到依赖项中Cargo.toml:

[dependencies]
foo = { package = "foo_sys", version = "0.2" }

WARNING: Rust 1.26.0 之前的 Cargo 可能会下载错误的依赖项 https://github.com/rust-lang/rust/security/advisories/GHSA-phjm-8x66-qw4r使用此功能时!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Rust 2018 中为 crate 指定别名? 的相关文章

随机推荐

  • 卸载 NuGet 包时出现问题

    我正在尝试卸载 NuGet 安装的一些软件包 根据文档描述here http docs nuget org docs start here managing nuget packages using the dialog 我应该看到一个卸载
  • Tesseract OCR Android tessdata 目录未找到

    我目前正在使用 OCR 开发 Android 应用程序 并且已经达到了调用 BaseAPI init 方法的程度 我不断收到错误消息 指出该目录必须包含 tessdata 作为子文件夹 我已检查文件目录是否包含其中包含训练数据文件的文件夹
  • Node.js 上的文本到音频文件

    我正在寻找一种优化的合法方法来从 NodeJS 上的文本创建音频文件 现在我看到了 5 个变体 1 向谷歌翻译文本到语音 API 的简单 hhtp 请求 这种变体不好 因为每个请求都需要生成令牌 例如 传统知识 729008 879154
  • Crystal 从文件中读取 x 字节

    我有这个代码 a File open dev urandom b a read 1024 a close puts b 我原本希望从 dev urandom device file 获取前 1024 个字节 但我得到了一个错误 指出 rea
  • 如何在 Angular2 Typescript 项目中全局导入 Javascript 库?

    我试图弄清楚如何在我的 Angular2 项目中正确导入外部库 正如您在阅读有关此问题的其他答案时所看到的 对此存在一些困惑 甚至 Angular2 文档也没有相关信息 此外 Google 上的任何搜索都会导致与 Angular2 的 al
  • Silverlight 和 COM 互操作

    从 silverlight 与 COM 控件交互有哪些选项 在我的特定项目中 我有一个旧版 ActiveX 身份验证控件 我想在我的 silverlight 应用程序中利用它 没有太多无聊的细节 该控件采用几个参数 提示用户输入凭据或令牌
  • 如何在 Android 布局上正确分配 4 个按钮

    我试图将 4 个图像按钮分布到 Android 布局的 4 个可能的屏幕角落 无论分辨率如何 我希望图像背景是静态的 即 50x50 倾斜 并且我还希望在背景中全屏显示 android gesture GestureOverlayView
  • 如何在 ggplot2::geom_step() 中将线居中,类似于 highcharter

    对于我的情节 我想要ggplot2 geom step 线对齐以我的点为中心 而不是向左对齐 In highcharter hc add series type line 有一个选项叫做step center 看我的jsfiddle htt
  • 如何使用Python在Windows中设置代理?

    如何获取当前 Windows 浏览器代理设置并将其设置为一个值 我知道我可以通过查看注册表来做到这一点Software Microsoft Windows CurrentVersion Internet Settings ProxyServ
  • 如何在动态情况下寻找最短路径

    几天前 有人问我 如果我们的环境中有一些代理 他们想要从源头到达目的地 我们如何才能找到所有代理的总最短路径 以便他们在执行过程中不会发生冲突走 问题的关键是所有智能体同时在环境中行走 可以通过无向加权图建模 并且我们不应该发生任何碰撞 我
  • 在 NSPredicate 中使用 NSDate

    是否有特定的方法来配置 NSPredicate 来比较日期 本质上我有一个 Photo 对象 它有一个 NSDate lastViewed 我想配置一个 NSPredicate 它将返回最近在指定时间段 通常是两天 之前查看过的所有照片对象
  • 当我尝试安装 @nuxtjs/firebase 时出现 NPM 错误

    我收到这个错误 我不理解 而且我真的不知道如何修复 我正在使用 Nuxt js 我想同时使用 firebase 但是当我尝试 firebase nuxtjs 时 org 并安装 nuxtjs firebase 我收到此错误 npm ERR
  • 如何修复“UIPopoverController 已弃用”警告?

    我正在使用这段代码 mediaLibraryPopover UIPopoverController alloc initWithContentViewController avc self mediaLibraryPopover prese
  • Highcharts 在某些缩放级别不显示数据

    我正在使用 Highcharts Highstock 绘制相当大量的数据 10 000 点 数据由 X 轴上的 Date 对象组成 Y 轴上浮动 格式如下 date 1 728 date 0 346 日期始终相隔 1 小时 并且数据中没有间
  • 处置 RestRequest RestSharp 对象?

    我正在使用 RestSharp 并创建 RestRequest 对象以将 FileData 发送到 API 但是在得到响应后 我想从本地计算机中删除该文件 但是当我尝试执行相同操作时 它给了我错误 文件正在被其他进程使用 我认为的原因是我无
  • 附件名称和文件扩展名在电子邮件 *.eml 中不起作用

    我想在以下位置创建电子邮件文件 eml格式为包含多个附件 附件已生成 且附件内容正确 但附件总是进来 dat格式和文件名为 ATT00001 ATT0002 等 目前我正在遵循中给出的解决方案这个计算器问题 https stackoverf
  • UIDocument 和 NSFileWrapper - 尽管增量更改,大文件仍需要很长时间才能保存

    我有一个UIDocument基于应用程序使用NSFileWrappers 来存储数据 主 文件包装器包含许多附加的目录文件包装器 每个包装器代表文档的不同页面 保存仅修改了一小部分页面的大型文档时 UIDocument在后台花费很长时间编写
  • BeautifulSoup - findAll 不在特定标签内

    因此 我试图找到一种方法来查找 BeautifulSoup 对象中具有某个标签但不在某个其他标签内的所有项目 例如 td class disabled first div class dayContainer p class day 29
  • 尝试将 pandas 数据框插入临时表

    我正在创建一个临时表并向其中插入一些数据 我广泛使用 pyodbc 来提取数据 但我不熟悉如何从 python 环境将数据写入 SQL 我在工作中这样做 所以我没有能力创建表 但我可以创建临时表和全局临时表 我的目的是将一个相对较小的数据帧
  • 如何在 Rust 2018 中为 crate 指定别名?

    我有一个箱子foo sys 在 Rust 2015 中我使用了extern crate foo sys as foo为了方便起见 但在 Rust 2018 中extern crate不再需要 我不想仅将它用于别名 掉落时extern cra