diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-05-16 23:34:08 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-05-16 23:34:08 +0900 |
| commit | ef1bdb737d73125ab71dd9ff5f0f135ce7aaba07 (patch) | |
| tree | cfd4f3ab28ee3a72b972989235c53a8542799bae /crates | |
| parent | 2a885fa094922860b4a49c272816fc6b7e48d07f (diff) | |
| download | php-shirabe-ef1bdb737d73125ab71dd9ff5f0f135ce7aaba07.tar.gz php-shirabe-ef1bdb737d73125ab71dd9ff5f0f135ce7aaba07.tar.zst php-shirabe-ef1bdb737d73125ab71dd9ff5f0f135ce7aaba07.zip | |
feat(port): port Comparator.php
Diffstat (limited to 'crates')
| -rw-r--r-- | crates/shirabe-semver/src/comparator.rs | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/crates/shirabe-semver/src/comparator.rs b/crates/shirabe-semver/src/comparator.rs index 15df53e..575a656 100644 --- a/crates/shirabe-semver/src/comparator.rs +++ b/crates/shirabe-semver/src/comparator.rs @@ -1 +1,36 @@ //! ref: composer/vendor/composer/semver/src/Comparator.php + +use crate::constraint::constraint::Constraint; + +pub struct Comparator; + +impl Comparator { + pub fn greater_than(version1: String, version2: String) -> bool { + Self::compare(version1, ">".to_string(), version2) + } + + pub fn greater_than_or_equal_to(version1: String, version2: String) -> bool { + Self::compare(version1, ">=".to_string(), version2) + } + + pub fn less_than(version1: String, version2: String) -> bool { + Self::compare(version1, "<".to_string(), version2) + } + + pub fn less_than_or_equal_to(version1: String, version2: String) -> bool { + Self::compare(version1, "<=".to_string(), version2) + } + + pub fn equal_to(version1: String, version2: String) -> bool { + Self::compare(version1, "==".to_string(), version2) + } + + pub fn not_equal_to(version1: String, version2: String) -> bool { + Self::compare(version1, "!=".to_string(), version2) + } + + pub fn compare(version1: String, operator: String, version2: String) -> bool { + let constraint = Constraint::new(operator, version2); + constraint.match_specific(&Constraint::new("==".to_string(), version1), true) + } +} |
