From 5b3d5a44c86fed94fc9d915943b728903f09c8ca Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sat, 16 May 2026 23:31:35 +0900 Subject: feat(port): port MatchAllConstraint.php --- .../src/constraint/match_all_constraint.rs | 43 ++++++++++++++++++++++ 1 file changed, 43 insertions(+) (limited to 'crates') diff --git a/crates/shirabe-semver/src/constraint/match_all_constraint.rs b/crates/shirabe-semver/src/constraint/match_all_constraint.rs index 7ba02cc..e877735 100644 --- a/crates/shirabe-semver/src/constraint/match_all_constraint.rs +++ b/crates/shirabe-semver/src/constraint/match_all_constraint.rs @@ -1 +1,44 @@ //! ref: composer/vendor/composer/semver/src/Constraint/MatchAllConstraint.php + +use crate::constraint::bound::Bound; +use crate::constraint::constraint_interface::ConstraintInterface; + +#[derive(Debug)] +pub struct MatchAllConstraint { + pub(crate) pretty_string: Option, +} + +impl ConstraintInterface for MatchAllConstraint { + fn matches(&self, _provider: &dyn ConstraintInterface) -> bool { + true + } + + fn compile(&self, _other_operator: i64) -> String { + "true".to_string() + } + + fn set_pretty_string(&mut self, pretty_string: Option) { + self.pretty_string = pretty_string; + } + + fn get_pretty_string(&self) -> String { + if let Some(ref s) = self.pretty_string { + if !s.is_empty() { + return s.clone(); + } + } + self.__to_string() + } + + fn __to_string(&self) -> String { + "*".to_string() + } + + fn get_upper_bound(&self) -> Bound { + Bound::positive_infinity() + } + + fn get_lower_bound(&self) -> Bound { + Bound::zero() + } +} -- cgit v1.3.1