From 27d00055df8691a6bd99aaf38633a7338b16cc6a Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sat, 11 Jul 2026 16:33:05 +0900 Subject: chore: use fully-qualified name for Rc/RefCell --- crates/shirabe/src/repository/array_repository.rs | 13 ++-- crates/shirabe/src/repository/handle.rs | 75 ++++++++++++---------- .../src/repository/vcs/vcs_driver_interface.rs | 6 +- 3 files changed, 48 insertions(+), 46 deletions(-) (limited to 'crates/shirabe/src/repository') diff --git a/crates/shirabe/src/repository/array_repository.rs b/crates/shirabe/src/repository/array_repository.rs index dc31baad..6f5e4194 100644 --- a/crates/shirabe/src/repository/array_repository.rs +++ b/crates/shirabe/src/repository/array_repository.rs @@ -16,20 +16,19 @@ use shirabe_external_packages::composer::pcre::Preg; use shirabe_php_shim::{implode, preg_quote, strtolower}; use shirabe_semver::constraint::AnyConstraint; use shirabe_semver::constraint::SimpleConstraint; -use std::cell::RefCell; use std::rc::Weak; /// A repository implementation that simply stores packages in an array #[derive(Debug)] pub struct ArrayRepository { - pub(crate) packages: RefCell>>, + pub(crate) packages: std::cell::RefCell>>, /// @var ?array indexed by package unique name and used to cache hasPackage calls - pub(crate) package_map: RefCell>>, + pub(crate) package_map: std::cell::RefCell>>, /// Weak reference to the outermost repository handle wrapping this `ArrayRepository`, /// injected via `set_self_handle`. Used to wire package -> repository back-references. - self_weak: RefCell>, + self_weak: std::cell::RefCell>, } impl ArrayRepository { @@ -120,9 +119,9 @@ impl ArrayRepository { /// @param array $packages pub fn new(packages: Vec) -> anyhow::Result { let this = Self { - packages: RefCell::new(None), - package_map: RefCell::new(None), - self_weak: RefCell::new(None), + packages: std::cell::RefCell::new(None), + package_map: std::cell::RefCell::new(None), + self_weak: std::cell::RefCell::new(None), }; for package in packages { this.add_package(package)?; diff --git a/crates/shirabe/src/repository/handle.rs b/crates/shirabe/src/repository/handle.rs index 64cb5b73..f093f66b 100644 --- a/crates/shirabe/src/repository/handle.rs +++ b/crates/shirabe/src/repository/handle.rs @@ -8,35 +8,36 @@ use crate::repository::{ }; use indexmap::IndexMap; use shirabe_semver::constraint::AnyConstraint; -use std::cell::{Ref, RefCell, RefMut}; -use std::rc::{Rc, Weak}; +use std::cell::{Ref, RefMut}; +use std::rc::Weak; /// Shared reference to a repository. Corresponds to PHP `RepositoryInterface`. #[derive(Debug, Clone)] -pub struct RepositoryInterfaceHandle(Rc>); +pub struct RepositoryInterfaceHandle(std::rc::Rc>); /// Weak back-reference held by packages to the repository that owns them. -pub type RepositoryInterfaceWeakHandle = Weak>; +pub type RepositoryInterfaceWeakHandle = Weak>; impl RepositoryInterfaceHandle { /// Wraps a concrete repository in a shared handle and injects its own weak reference so that /// `add_package` can wire package -> repository back-references (PHP `setRepository($this)`). pub fn new(repository: T) -> Self { - let rc: Rc> = Rc::new(RefCell::new(repository)); - rc.borrow().set_self_handle(Rc::downgrade(&rc)); + let rc: std::rc::Rc> = + std::rc::Rc::new(std::cell::RefCell::new(repository)); + rc.borrow().set_self_handle(std::rc::Rc::downgrade(&rc)); Self(rc) } - pub fn from_rc(rc: Rc>) -> Self { + pub fn from_rc(rc: std::rc::Rc>) -> Self { Self(rc) } - pub fn as_rc(&self) -> &Rc> { + pub fn as_rc(&self) -> &std::rc::Rc> { &self.0 } pub fn downgrade(&self) -> RepositoryInterfaceWeakHandle { - Rc::downgrade(&self.0) + std::rc::Rc::downgrade(&self.0) } pub fn borrow(&self) -> Ref<'_, dyn RepositoryInterface> { @@ -49,12 +50,12 @@ impl RepositoryInterfaceHandle { /// PHP `===` (reference identity). pub fn ptr_eq(&self, other: &Self) -> bool { - Rc::ptr_eq(&self.0, &other.0) + std::rc::Rc::ptr_eq(&self.0, &other.0) } /// Stable identity usable as a map key (PHP `spl_object_hash`). pub fn ptr_id(&self) -> usize { - Rc::as_ptr(&self.0) as *const () as usize + std::rc::Rc::as_ptr(&self.0) as *const () as usize } /// PHP `instanceof T` for a concrete repository type. Keeps the `RefCell` borrow internal. @@ -63,13 +64,15 @@ impl RepositoryInterfaceHandle { } /// Downcasts the shared handle to a concrete repository type, preserving shared ownership. - pub fn downcast_rc(&self) -> Option>> { + pub fn downcast_rc( + &self, + ) -> Option>> { if self.0.borrow().as_any().is::() { let rc = self.0.clone(); - let ptr = Rc::into_raw(rc) as *const RefCell; + let ptr = std::rc::Rc::into_raw(rc) as *const std::cell::RefCell; // SAFETY: is::() proved the value is `T`, and handles are always allocated as // `Rc::new(RefCell::new(concrete))`, so the layout matches `RcBox>`. - Some(unsafe { Rc::from_raw(ptr) }) + Some(unsafe { std::rc::Rc::from_raw(ptr) }) } else { None } @@ -191,7 +194,7 @@ impl RepositoryInterfaceHandle { impl PartialEq for RepositoryInterfaceHandle { fn eq(&self, other: &Self) -> bool { - Rc::ptr_eq(&self.0, &other.0) + std::rc::Rc::ptr_eq(&self.0, &other.0) } } @@ -205,21 +208,22 @@ impl std::hash::Hash for RepositoryInterfaceHandle { /// Typed shared handle over `LockArrayRepository`. #[derive(Debug, Clone)] -pub struct LockArrayRepositoryHandle(Rc>); +pub struct LockArrayRepositoryHandle(std::rc::Rc>); impl LockArrayRepositoryHandle { pub fn new(repository: LockArrayRepository) -> Self { - let rc: Rc> = Rc::new(RefCell::new(repository)); - let rc_dyn: Rc> = rc.clone(); - rc.borrow().set_self_handle(Rc::downgrade(&rc_dyn)); + let rc: std::rc::Rc> = + std::rc::Rc::new(std::cell::RefCell::new(repository)); + let rc_dyn: std::rc::Rc> = rc.clone(); + rc.borrow().set_self_handle(std::rc::Rc::downgrade(&rc_dyn)); Self(rc) } - pub fn from_rc(rc: Rc>) -> Self { + pub fn from_rc(rc: std::rc::Rc>) -> Self { Self(rc) } - pub fn as_rc(&self) -> &Rc> { + pub fn as_rc(&self) -> &std::rc::Rc> { &self.0 } @@ -236,24 +240,24 @@ impl LockArrayRepositoryHandle { } pub fn ptr_eq(&self, other: &Self) -> bool { - Rc::ptr_eq(&self.0, &other.0) + std::rc::Rc::ptr_eq(&self.0, &other.0) } pub fn ptr_id(&self) -> usize { - Rc::as_ptr(&self.0) as *const () as usize + std::rc::Rc::as_ptr(&self.0) as *const () as usize } } impl From for RepositoryInterfaceHandle { fn from(h: LockArrayRepositoryHandle) -> Self { - let rc: Rc> = h.0; + let rc: std::rc::Rc> = h.0; RepositoryInterfaceHandle::from_rc(rc) } } impl PartialEq for LockArrayRepositoryHandle { fn eq(&self, other: &Self) -> bool { - Rc::ptr_eq(&self.0, &other.0) + std::rc::Rc::ptr_eq(&self.0, &other.0) } } @@ -267,21 +271,22 @@ impl std::hash::Hash for LockArrayRepositoryHandle { /// Typed shared handle over `PlatformRepository`. #[derive(Debug, Clone)] -pub struct PlatformRepositoryHandle(Rc>); +pub struct PlatformRepositoryHandle(std::rc::Rc>); impl PlatformRepositoryHandle { pub fn new(repository: PlatformRepository) -> Self { - let rc: Rc> = Rc::new(RefCell::new(repository)); - let rc_dyn: Rc> = rc.clone(); - rc.borrow().set_self_handle(Rc::downgrade(&rc_dyn)); + let rc: std::rc::Rc> = + std::rc::Rc::new(std::cell::RefCell::new(repository)); + let rc_dyn: std::rc::Rc> = rc.clone(); + rc.borrow().set_self_handle(std::rc::Rc::downgrade(&rc_dyn)); Self(rc) } - pub fn from_rc(rc: Rc>) -> Self { + pub fn from_rc(rc: std::rc::Rc>) -> Self { Self(rc) } - pub fn as_rc(&self) -> &Rc> { + pub fn as_rc(&self) -> &std::rc::Rc> { &self.0 } @@ -294,24 +299,24 @@ impl PlatformRepositoryHandle { } pub fn ptr_eq(&self, other: &Self) -> bool { - Rc::ptr_eq(&self.0, &other.0) + std::rc::Rc::ptr_eq(&self.0, &other.0) } pub fn ptr_id(&self) -> usize { - Rc::as_ptr(&self.0) as *const () as usize + std::rc::Rc::as_ptr(&self.0) as *const () as usize } } impl From for RepositoryInterfaceHandle { fn from(h: PlatformRepositoryHandle) -> Self { - let rc: Rc> = h.0; + let rc: std::rc::Rc> = h.0; RepositoryInterfaceHandle::from_rc(rc) } } impl PartialEq for PlatformRepositoryHandle { fn eq(&self, other: &Self) -> bool { - Rc::ptr_eq(&self.0, &other.0) + std::rc::Rc::ptr_eq(&self.0, &other.0) } } diff --git a/crates/shirabe/src/repository/vcs/vcs_driver_interface.rs b/crates/shirabe/src/repository/vcs/vcs_driver_interface.rs index fb10d0f2..628f78b7 100644 --- a/crates/shirabe/src/repository/vcs/vcs_driver_interface.rs +++ b/crates/shirabe/src/repository/vcs/vcs_driver_interface.rs @@ -5,8 +5,6 @@ use crate::io::IOInterface; use chrono::{DateTime, FixedOffset}; use indexmap::IndexMap; use shirabe_php_shim::PhpMixed; -use std::cell::RefCell; -use std::rc::Rc; pub trait VcsDriverInterface: std::fmt::Debug { fn initialize(&mut self) -> anyhow::Result<()>; @@ -40,8 +38,8 @@ pub trait VcsDriverInterface: std::fmt::Debug { fn cleanup(&mut self) -> anyhow::Result<()>; fn supports( - io: Rc>, - config: Rc>, + io: std::rc::Rc>, + config: std::rc::Rc>, url: &str, deep: bool, ) -> anyhow::Result -- cgit v1.3.1