Rust 防锈板条箱功能是否需要单独安装?
我很难理解Rust toml中的特性条目 假设我在本例中有一个依赖项sqlxRust 防锈板条箱功能是否需要单独安装?,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属性使用的条件编译选项;
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引入该特性所需的所有依赖项。你不需要做任何其他事情。