aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe-semver/src/semver.rs
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-05-17 04:56:37 +0900
committernsfisis <nsfisis@gmail.com>2026-05-17 04:57:23 +0900
commit8fb6de392bbac104c07a5cdbac12a4fd25ab1127 (patch)
tree9cbe66e913ae2166b1f976ae5a2a1e8a06492e97 /crates/shirabe-semver/src/semver.rs
parent90b3be462bd2f91ef366df06c2b5bbae2821a394 (diff)
downloadphp-shirabe-8fb6de392bbac104c07a5cdbac12a4fd25ab1127.tar.gz
php-shirabe-8fb6de392bbac104c07a5cdbac12a4fd25ab1127.tar.zst
php-shirabe-8fb6de392bbac104c07a5cdbac12a4fd25ab1127.zip
fix(semver): resolve shirabe-semver compile errors
- Replace RefCell with Mutex in Constraint for thread safety - Add clone_box() to ConstraintInterface for cloning trait objects - Propagate Result from Constraint::new() and unwrap at call sites - Fix VersionParser instantiation (unit struct, not fn) - Add indexmap dependency to shirabe-semver
Diffstat (limited to 'crates/shirabe-semver/src/semver.rs')
-rw-r--r--crates/shirabe-semver/src/semver.rs11
1 files changed, 6 insertions, 5 deletions
diff --git a/crates/shirabe-semver/src/semver.rs b/crates/shirabe-semver/src/semver.rs
index 8fecf27..0aff3d7 100644
--- a/crates/shirabe-semver/src/semver.rs
+++ b/crates/shirabe-semver/src/semver.rs
@@ -14,13 +14,14 @@ impl Semver {
fn version_parser() -> &'static VersionParser {
static VERSION_PARSER: OnceLock<VersionParser> = OnceLock::new();
- VERSION_PARSER.get_or_init(VersionParser::new)
+ VERSION_PARSER.get_or_init(|| VersionParser)
}
pub fn satisfies(version: String, constraints: String) -> anyhow::Result<bool> {
let version_parser = Self::version_parser();
- let provider = Constraint::new("==".to_string(), version_parser.normalize(version)?);
- let parsed_constraints = version_parser.parse_constraints(constraints)?;
+ let provider =
+ Constraint::new("==".to_string(), version_parser.normalize(&version, None)?)?;
+ let parsed_constraints = version_parser.parse_constraints(&constraints)?;
Ok(parsed_constraints.matches(&provider))
}
@@ -49,9 +50,9 @@ impl Semver {
.iter()
.enumerate()
.map(|(key, version)| -> anyhow::Result<(String, usize)> {
- let normalized_version = version_parser.normalize(version.clone())?;
+ let normalized_version = version_parser.normalize(version, None)?;
let normalized_version =
- version_parser.normalize_default_branch(normalized_version);
+ version_parser.normalize_default_branch(&normalized_version);
Ok((normalized_version, key))
})
.collect::<anyhow::Result<Vec<_>>>()?;