Rust 如何在铁锈中创建多版本板条箱

Rust 如何在铁锈中创建多版本板条箱,rust,rust-cargo,rust-crates,Rust,Rust Cargo,Rust Crates,我想创建一个多版本的板条箱。 假设我为某个标准创建一个板条箱,我们称之为A,该标准有两个版本1.0、1.1、1.3。。。。我想要的是创建一个板条箱: 用户可以选择所需的标准版本, 我可以在每个版本上并行工作并修复bug, 理想情况下,如果使用注释或注释在字段、模块或函数上指定版本,我希望有一个单一的代码库。 例如: ///自:1.1 发布结构A{ aa:String,//从1.1开始 ///自:1.2 bb:弦, } 暗示{ pub fn new->Self{…} [自:1.3]//例如 发布f

我想创建一个多版本的板条箱。 假设我为某个标准创建一个板条箱,我们称之为A,该标准有两个版本1.0、1.1、1.3。。。。我想要的是创建一个板条箱:

用户可以选择所需的标准版本, 我可以在每个版本上并行工作并修复bug, 理想情况下,如果使用注释或注释在字段、模块或函数上指定版本,我希望有一个单一的代码库。 例如:

///自:1.1 发布结构A{ aa:String,//从1.1开始 ///自:1.2 bb:弦, } 暗示{ pub fn new->Self{…} [自:1.3]//例如 发布fn fromother:&Self->Self{…} } 用户可以将其用作:

[dependencies]
a = "1.2"

我的想法是,我可以修复/改进1.1的实现,即使这里发布了1.2版,版本号仍将保持不变

我以前从未创建过Rust crate,但我对如何进行版本控制有一些想法:

每个版本都有subversion编号,例如1.1.2或1.1-2 WARE 2是1.1标准版本实施版本。 有单独的板条箱版本,并允许用户选择标准版本,例如: 另外 我希望我能很好地解释我想做什么。问题是: 理想情况下,版本控制可以通过链接到板条箱来实现,这样我就可以看到实现了吗

更新: 在写了这个问题之后,我发现一个类似于我所需要的,但并不完全是每个UUID版本作为单独的标准,而不是之前版本的更新。
我仍然很好奇,是否还有其他方法可以实现多版本控制?

您可以使用,在这里您可以检查一个选项,例如standard\u version,它指定您的板条箱用户希望目标的标准版本。@EvilTak,除非多个版本可以同时使用,选项可以/应该只是一组功能,理想情况下,它们是相互排斥的功能,但cargo没有提供这样做的方法,因此您需要手动滚动编译错误。例如,实现了一个标准LLVM的多个版本,每个LLVM版本都是一个功能标志,您可以启用与要使用的LLVM版本匹配的任何功能,当你检查一个选项时,比如标准版本,它指定你的板条箱的用户想要目标的标准版本。@EvilTak除非多个版本可以同时使用,否则该选项可以/应该只是一组功能,理想情况下,它们是互斥的功能,但是cargo没有提供这样做的方法,因此您需要手动滚动编译错误。例如,实现一个标准LLVM的多个版本,每个LLVM版本都是一个特性标志,您可以启用与要使用的LLVM版本匹配的任何特性。
[dependencies]
a = "1.1"
[dependencies]
a =  "0.7"

[dependencies.a]
standard = "1.1"