问题标签 [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.
rust - 是否可以在 Cargo.toml 中指定依赖功能的版本?
例如,我使用barbarers crate:
是否可以指定此依赖项应使用哪个版本的图像?
就像是
因为它使用 image crate 版本0.18.0
并且在我的项目中我使用 latest 0.22.3
.
这是否意味着只有两种方法可以解决这个问题:
- 我在我的包中降级版本
- 条码器依赖得到更新
rust - 如何在 crate 安装中包含文本文件
我的程序在我的本地机器上按预期工作。它以 Emacs “Spook” 游戏 (Mx spook) 的方式从文本文件中打印随机行。文本文件位于src/spook.lines
.
但是如果我将它作为 crate 发布并安装它,则找不到文本文件(因为src/spook.lines
如果程序是从 crates.io 安装的,则它不在其中):
我包含文件的方式是:
为什么我不能只告诉货物/板条箱包装包含文本文件?首选方式是什么?我的意思是即使我将文件包含在某个目录中,它也不会在PATH
执行中,因为程序可能从任何地方运行。
module - 如何仅将模块的功能导出为另一个模块的一部分?
我想将一些函数组织到多个文件中,因为它们足够大以保证这一点,但是从该目录之外我希望它们看起来都是从同一个父模块导出的。
我有文件:
从内部main.rs
,我希望能够做到:
两者都a.rs
包含b.rs
一个函数:
/example/a.rs
/example/b.rs
我不知道如何从中导出它们/example/mod.rs
,使其看起来全部在example
模块中。
我可以这样做:
/example/mod.rs
但后来我的use
后来看起来像:
/main.rs
编辑:解决方案是/example/mod.rs
看起来像这样:
rust - 如何判断每个箱子有哪些“功能”?
是否有一种标准方法来确定给定 crate 可以使用哪些功能?
我正在尝试阅读 Postgres 时区,这表示要使用 cratepostgres = "0.17.0-alpha.1"
板条箱with-time
或with-chrono
功能。
当我在我的 Cargo.toml 中尝试这个时:
我收到此错误:
此外,postgres 0.17.0 的 crate 页面没有说明这些功能,所以我什至不知道它们是否应该被支持。
似乎docs.rs 上会有一些关于它的内容?
compiler-errors - 如何添加外部包并在 rust 编译器中运行?
我正在使用 rust 编译和构建一个示例程序。我选择rustc
而不是cargo
编译,因为它是一个简单的个人测试项目。到目前为止,rustc
用于编译和构建可执行文件的工作正常,但是当我尝试添加外部rand
包时,它给了我这个错误
这是完整的代码
如何添加外部包并运行rustc
?
rust - `crates.io` 中的代码参考与实际的 crate 不匹配
我对 rust 使用库的语法非常陌生。好吧,总的来说,大部分都是新的生锈。
我已经包含了一个未完成的库,并且似乎不起作用。该库称为“小时”,其中lib.rs
包含以下内容:
它包含在Cargo.toml
:相关行:
我想知道是否可以包含和使用该from()
功能,到目前为止,我没有运气。这是我尝试过的:
给出编译错误:Hours::from(example_hrs, Amsterdam).unwrap(); ^^^^^ use of undeclared type or module
Hours``
给出编译错误:use hours::Hours; ^^^^^^^^^^^^ no ``Hours`` in the root
给出编译错误:hours::Hours::from(example_hrs, Amsterdam).unwrap(); ^^^^^ could not find
Hours in
hours``
有没有办法包含和使用这个库?我是否需要更改库,或者我只是使用错误?
module - Rust 中的跨模块函数调用
我正在尝试从另一个模块调用属于某个模块的函数(用于代码分解、组织等)。
这是我的板条箱结构:
在main
我声明:
所有这些文件都只包含一个简单的pub fn main() {println!("hello");}
.
此时,一切正常。
现在,是否可以拨打电话?lib::two::main
bin/one.rs
use crate::lib::two;
, use super::lib::two;
,中没有一个use self::super::lib::two;
添加到bin/one.rs
工作中。
编辑:我有:
rustc 1.42.0 (b8cedc004 2020-03-09)
安装在 Linux 5.3.0-45-generic 上,物有所值。编辑2:每当使用
super
关键字时,我都会从以下位置得到这个神秘的错误rustc
:
而且我在任何地方都找不到任何有关此问题的故障排除。
编辑3:在声明模块结构中添加一个
lib.rs
文件,并在作品中编写,但是:src
lib
use mod_test::lib::two;
one.rs
1)它破坏了在我的箱子中不增加“哑模块声明文件”的想法。
main.rs
2)我必须在两个不同的地方(in和inlib.rs
)复制完全相同的信息3)
use mod_test::lib::two;
是唯一有效的语法,使用crate
orsuper
关键字仍然会导致神秘的编译器错误
rust - 如何处理被标记为包含特洛伊木马的箱子?
我在我的项目中添加了一个依赖项,该依赖项又添加了一个和另一个 - 最后,我得到了 crate pelite。这个 crate 有一个“blob”文件,被 Windows 标记为“Trojan:Win32/Fuery.B!cl”
我认为这是一个误报,但它并未显示为“可能/可能”的特洛伊木马。我在 GitHub 上找到了 crate,并从 GitHub 下载了“blob”文件,一切正常。如果我从 crates.io 下载它(通过 Cargo 或手动),我会收到木马警告。
我的问题是cargo run
下载并运行它,因为防病毒软件无法阻止它或删除文件。
mongodb - 特征`std::convert::From` 没有为`std::io::Error` 实现`
试图在 rust 中使用 actix-web 和 mongodb 制作服务器。得到错误
该特征
std::convert::From<mongodb::error::Error>
未实现std::io::Error
这是我的代码
我错过了什么吗?