#terraform #version #calculator #parser

terraform-version

Parser and match calculator for terraform version constraint syntax

4 releases (breaking)

0.4.0 Mar 20, 2023
0.3.0 Mar 20, 2023
0.2.0 Mar 14, 2023
0.1.0 Feb 28, 2023

#321 in Math

Download history 24/week @ 2023-02-23 7/week @ 2023-03-02 65/week @ 2023-03-09 61/week @ 2023-03-16 38/week @ 2023-03-23 36/week @ 2023-03-30 58/week @ 2023-04-06 21/week @ 2023-04-13 43/week @ 2023-04-20 16/week @ 2023-04-27 13/week @ 2023-05-04 58/week @ 2023-05-11 17/week @ 2023-05-18

107 downloads per month

MIT license

14KB
215 lines

terraform-version

pipeline status MIT licensed Crates.io

terraform-version is a short parser and match calculator for terraform version constraint syntax.

It follows the terraform semantic constraints.

[dependencies]
terraform-version = "0.4"

Compiler support: requires rustc 1.67+

Example

use terraform_version::{Version, VersionRequirement, NumericIdentifiers};

fn main() {

    let version_req = VersionRequirement::parse("< 5.4.3, >= 1.2.3").unwrap();

    let version = Version::parse("1.2.3").unwrap();
    assert!(version.matches(&version_req));

    let version = Version::parse("5.4.4").unwrap();
    assert!(!version.matches(&version_req));


    let version_req = VersionRequirement::parse("= 1.2.3-beta").unwrap();

    let version = Version::parse("1.2.3-beta").unwrap();
    assert!(version.matches(&version_req));

    let version = Version {
        numeric_identifiers: NumericIdentifiers::new(vec![1, 2, 3]),
        suffix: None
    };
    assert!(!version.matches(&version_req));

}

License

terraform-version is provided under the MIT license. See LICENSE.

Dependencies

~0.9–1.3MB
~29K SLoC