From 8fb6de392bbac104c07a5cdbac12a4fd25ab1127 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sun, 17 May 2026 04:56:37 +0900 Subject: 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 --- crates/shirabe-semver/src/semver.rs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'crates/shirabe-semver/src/semver.rs') 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 = OnceLock::new(); - VERSION_PARSER.get_or_init(VersionParser::new) + VERSION_PARSER.get_or_init(|| VersionParser) } pub fn satisfies(version: String, constraints: String) -> anyhow::Result { 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::>>()?; -- cgit v1.3.1