From f31b101ce1e921a026ba234b1f0a83b0392bc118 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Wed, 20 May 2026 08:33:49 +0900 Subject: fix(compile): fix all remaining compile errors Co-Authored-By: Claude Opus 4.7 (1M context) --- crates/shirabe-semver/src/constraint/constraint.rs | 12 ++++++++++++ .../shirabe-semver/src/constraint/constraint_interface.rs | 15 +++++++++++++++ crates/shirabe-semver/src/version_parser.rs | 2 +- 3 files changed, 28 insertions(+), 1 deletion(-) (limited to 'crates/shirabe-semver/src') diff --git a/crates/shirabe-semver/src/constraint/constraint.rs b/crates/shirabe-semver/src/constraint/constraint.rs index d64c0a0..4ac4cda 100644 --- a/crates/shirabe-semver/src/constraint/constraint.rs +++ b/crates/shirabe-semver/src/constraint/constraint.rs @@ -387,6 +387,18 @@ impl ConstraintInterface for Constraint { fn as_any(&self) -> &dyn std::any::Any { self } + + fn is_constraint(&self) -> bool { + true + } + + fn get_operator(&self) -> &'static str { + Self::trans_op_int(self.operator) + } + + fn get_version(&self) -> &str { + &self.version + } } impl std::fmt::Display for Constraint { diff --git a/crates/shirabe-semver/src/constraint/constraint_interface.rs b/crates/shirabe-semver/src/constraint/constraint_interface.rs index 09536e6..f4bd905 100644 --- a/crates/shirabe-semver/src/constraint/constraint_interface.rs +++ b/crates/shirabe-semver/src/constraint/constraint_interface.rs @@ -22,6 +22,21 @@ pub trait ConstraintInterface: std::fmt::Debug { false } + /// Rust-specific helper: PHP `$c instanceof Constraint` check. + fn is_constraint(&self) -> bool { + false + } + + /// Rust-specific helper: PHP `$c->getOperator()`. Only meaningful when `is_constraint()` is true. + fn get_operator(&self) -> &'static str { + "" + } + + /// Rust-specific helper: PHP `$c->getVersion()`. Only meaningful when `is_constraint()` is true. + fn get_version(&self) -> &str { + "" + } + fn clone_box(&self) -> Box; fn as_any(&self) -> &dyn std::any::Any; diff --git a/crates/shirabe-semver/src/version_parser.rs b/crates/shirabe-semver/src/version_parser.rs index 359beec..39000e7 100644 --- a/crates/shirabe-semver/src/version_parser.rs +++ b/crates/shirabe-semver/src/version_parser.rs @@ -20,7 +20,7 @@ const MODIFIER_REGEX: &str = const STABILITIES_REGEX: &str = "stable|RC|beta|alpha|dev"; -#[derive(Debug)] +#[derive(Debug, Clone)] pub struct VersionParser; impl VersionParser { -- cgit v1.3.1