问题标签 [rust-crates]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
dependencies - 如果相关功能被禁用,如何跳过依赖项
假设我有一个仅在启用glob
时才依赖于该板条箱的板条箱。#[cfg(feature = "glob")]
此外,默认情况下禁用此功能。如何glob
默认跳过下载和编译 crate?
和源代码:
rust - 从多个非根二进制文件导入非根模块
我正在学习 Rust,并决定编写一个简单的客户端/服务器程序。客户端和服务器都将使用我已经编写的一个非常简单的模块。知道这段代码可能会增长,为了清楚起见,我决定划分我的源代码。现在我当前的层次结构如下所示:
我在 Stack Overflow 和网络上找到的 许多示例都为项目根目录中的情况提供了很好的示例。main.rs
不幸的是,我正在尝试做一些不同的事情,如上所示。
communicate.rs
包含我编写的所有网络代码。最终我会在这里添加其他 Rust 文件并将它们的public mod
语句包含在mod.rs
. 目前common/mod.rs
我只有
pub mod communicate;
只关注client
文件夹,我所拥有的一切main.rs
如图所示。文件“标题”列出
除了基本[package]
部分,我所拥有的Cargo.toml
只有
当我尝试构建客户端二进制文件时,编译器抱怨common
找不到 crate。
我认为这是因为它正在文件夹中寻找一个通用的板条箱client/
。当我尝试使用mod
语句而不是extern crate
语句时,我遇到了同样的问题。
给我:
我还尝试(使用)在其内容中extern crate...
添加 a ,但我仍然得到与第一个相同的错误。lib.rs
client
pub mod common;
我发现一个潜在的解决方案可以像这个项目一样对其进行建模,但这需要Cargo.toml
在每个文件夹中都有一个,这是我想避免的。
我觉得我很亲近,但我错过了一些东西。
operating-system - Crate 的 Cargo.toml 操作系统依赖
我有一个 rust 项目,其中包含mysql -crate 依赖项,我想让它独立于操作系统。
所以我尝试了:Cargo.toml
错误已经发生在一个最小的 main: src/main.rs
但是构建失败。在 macos/unix 上,它总是想编译管道并得到一个未解决的导入:
对于 mysql crate 本身,在 Windows 上也会发生同样的情况:
所以我的问题是,在这种情况下我如何处理操作系统依赖关系?
rust - 如何使用“货物猛拉”?
我发布了我的 crate,然后意识到我忘记在我的README.md
. 我已经将该细节包含在 README.md
并做git commit
和push
。如何在不更改版本的情况下更新我的板条箱?
cargo yank
有时可能会出现您发布的 crate 版本实际上最终由于某种原因(语法错误、忘记包含文件等)而被破坏的情况。对于这样的情况,Cargo 支持
yank
一个 crate 版本。
我不明白如何使用它。为什么有 2 个命令:一个有另一个没有--undo
?我应该同时运行它们吗?还是只有一个?哪个?
我应该crate package && crate publish
在那之后跑吗?还是只有cargo yank ...
?这会自动更新我的箱子吗?
rust - 使用 Xargo 从特定源编译 `core`
基于此评论,应该可以使用 Xargo 来管理core
特定目标的自定义 crate 的安装。我已经尝试了以下方法来让它与一个没有其他依赖关系的板条箱一起工作,除了core
:
Cargo.toml
: 没有列出依赖项
Xargo.toml
:我列出的具体来源core
但是,构建 viaxargo build
失败,就好像我只是在使用cargo
:
请注意,没有任何迹象表明甚至尝试过 Git 流量。
相反,cargo
如果我将core = { git = ...}
行放入Cargo.toml
而不是Xargo.toml
,这是 vanilla 的输出,它按预期工作:
rust - 为什么即使我的 Cargo.toml 中有 openssl 0.7.14,solicit 0.4.4 仍会尝试使用 openssl 0.9.12?
我有一个使用 Solicit 示例通过 HTTPS 发出请求的简单项目。我的 Cargo.toml 有:
当我尝试运行cargo build
时,错误是:
为什么是 0.9.12 而不是 0.7.14?
rust - 未考虑来自 RustCrypto 的 BlockCipherVarKey 特征的方法
我正在尝试使用 RustCrypto 来实例化河豚对象。该new
方法由block-cipher-trait crate 中的 traitBlockCipherVarKey
实现。
这是我的最小示例:
具有以下内容Cargo.toml
:
我尝试构建它,但出现以下错误:
为什么use block_cipher_trait::BlockCipherVarKey
不考虑在线2?为什么编译器建议我添加它,尽管它已经在这里了?
macros - 如何在宏中包含唯一匹配案例的文档?
可以为导出的宏的单个匹配案例编写文档。
是这样的可能还是我必须这样做: