Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rust 防锈板条箱功能是否需要单独安装?_Rust_Rust Cargo - Fatal编程技术网

Rust 防锈板条箱功能是否需要单独安装?

Rust 防锈板条箱功能是否需要单独安装?,rust,rust-cargo,Rust,Rust Cargo,我很难理解Rust toml中的特性条目 假设我在本例中有一个依赖项sqlx sqlx = { version = "0.4.0-beta.1", default-features = false, features = [ "runtime-tokio", "macros", "json", "mysql" ] } 铁锈书上说: Cargo支持以下功能: 可通过cfg属性使用的条件编译选项;

我很难理解Rust toml中的特性条目

假设我在本例中有一个依赖项sqlx

sqlx = { version = "0.4.0-beta.1", default-features = false, features = [ "runtime-tokio", "macros", "json", "mysql" ] }
铁锈书上说:

Cargo支持以下功能:

可通过cfg属性使用的条件编译选项; 可选依赖项,可增强包,但不是必需的;和 可选依赖项的集群,例如postgres all,其中包括postgres包、postgres宏包和 可能还有其他包,比如开发时模拟库, 调试工具等。。 包的一个特性可以是可选的依赖项,也可以是一组 其他功能

这对我来说意味着什么?我是否必须安装,例如,在我的Cargo.toml中输入runtime tokio作为附加依赖项,或者sqlx是否已经随runtime tokio提供


顺便说一句,什么是cfg属性?

每当您为依赖项指定功能时,您都会要求Cargo以不同的方式编译该依赖项,就像板条箱选择提供的那样。通常,但并非总是,该功能的名称与它可以依赖的板条箱相同,以提供例如trait实现

我是否必须安装,例如,在我的Cargo.toml中输入runtime tokio作为附加依赖项,或者sqlx是否已经随runtime tokio提供

没有;sqlx的Cargo.toml将负责为任何功能组合指定所需的依赖项

什么是cfg属性

属性是写在[attribute_name_here]上的东西,比如[test]和[deriveDebug]。允许条件编译,即告诉编译器假装源代码的某些部分不存在

通常,功能具有两种效果:

它启用了一个可选的依赖项,该依赖项在Cargo.toml中指定,由与板条箱依赖项同名的功能显式或隐式指定。 它使用条件编译来编译板条箱中使用该依赖项的代码,而不是忽略该代码。
启用一个特性会告诉cargo引入该特性所需的所有依赖项。你不需要做任何其他事情。