#version #operator #comparison

version_operators

Rust库,用于比较和操作版本号

1个不稳定发布

0.0.1 2021年1月16日

#105 in #comparison

AGPL-3.0

19KB
154

版本操作符

Rust库,用于比较和操作版本号

Byte size of Version Open Issues Open Pull Requests Latest commits Build Status



需求

此仓库需要Rust语言/编译器从源代码构建

截至此ReadMe文件的最新更新,推荐安装Rust的方法是使用安装脚本...

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

快速入门

此仓库是一个Rust库,在项目的Cargo.toml文件中将它定义为依赖...

Cargo.toml (省略)

[dependencies]
version_operators = "0.0.1"

有关定义依赖项的详细信息,请参阅Rust -- 文档 -- 定义依赖项

然后在源文件中通过use语句包含...

src/main.rs (省略)

use version_operators::Version;

使用方法

src/main.rs (示例)

use version_operators::Version;

fn main() {
    let version = Version::from_str("1.14.3");

    let expected = vec![1, 14, 3];

    assert_eq!(version.to_vector(), expected);
}

查看此仓库的examples/目录,以获取更多如何在其他应用程序中利用此项目的详细示例,使用cargo run --example <name>来执行,例如...

examples/version-compare.rs

cargo run --example version-compare '1.14.3' '-lt' '1.14.4'
#> true

cargo run --example version-compare '1.14.3' '==' '1.14.4'
#> false

examples/version-math.rs

cargo run --example version-math '1.14.4' '-add' '1.14.3'
#> [2, 28, 7]

cargo run --example version-math '1.14.4' '-sub' '1.14.3'
#> [0, 0, 1]

注意事项

直到版本 0.1.0;方法和数据结构属性以及实现名称可能已更改!

此仓库可能不是功能完整和/或完全功能性的,欢迎提交添加功能或修复错误的Pull Requests。

目前数学和比较操作符从每个版本的最重要的位开始。这意味着当操作不等长的版本时,可能需要对较短的版本进行零填充...

use version_operators::Version;

fn main() {
    let version_one = Version.from_str("1.14.3");
    let version_inc = Version.from_str("0.0.1");
    let new_version = version_one + version_inc;

    assert_eq!(new_version.to_vector(), vec![1, 14, 4]);
}

查看examples/version-increment.rs的源代码,以获取针对版本的一部分进行递增的示例...

cargo run --example version-increment '1.14.3' '1'
#> [1, 15, 3]

贡献

对版本和rust-utilities做出贡献的选项


分支

开始将此仓库分支到一个你有写权限的账户。

cd ~/git/hub/rust-utilities/version_operators

git remote add fork git@github.com:<NAME>/version_operators.git
  • 通过 cargo 测试更改...
cargo test
  • 提交您的更改并将其推送到您的分支,例如修复一个问题...
cd ~/git/hub/rust-utilities/version_operators


git commit -F- <<'EOF'
:bug: Fixes #42 Issue


**Edits**


- `<SCRIPT-NAME>` script, fixes some bug reported in issue
EOF


git push fork main

注意,可以使用 -u 选项将 fork 设置为默认远程,例如 git push -u fork main 然而,这也会默认将 fork 远程用于拉取!这意味着从 origin 拉取更新必须显式进行,例如 git pull origin main

  • 然后在 GitHub 上通过 Web-UI 提交拉取请求,URL 语法是 https://github.com/<NAME>/<REPO>/pull/new/<BRANCH>

注意;为了降低您的拉取请求在被接受之前需要修改的可能性,请查阅 dot-github 仓库中的详细贡献指南。


赞助商

感谢您考虑此事!

通过 Liberapay,您可以 sponsor__shields_io__liberapay 定期赞助。

无论您是否能够为 rust-utilities 维护的项目等提供财务支持,请考虑与他人分享有用的项目,因为维护开源存储库的一个目标是为社区提供价值。


归属


许可证

Rust library for comparing and manipulating version numbers
Copyright (C) 2021 S0AndS0

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, version 3 of the License.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.

有关更详细的信息,请查阅 AGPL-3.0 许可证的完整版本。

无运行时依赖