diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-06-08 02:23:31 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-06-08 02:23:31 +0900 |
| commit | 06368584a9277022d9cfc42d22c37f4cc6e580f8 (patch) | |
| tree | a210e77273316ce94530391ea4e6dc4ee60b42ea /crates/shirabe-external-packages/src/symfony/finder/finder.rs | |
| parent | 318ea948f5932dfa7942081a269d62fd7161a9bf (diff) | |
| download | php-shirabe-06368584a9277022d9cfc42d22c37f4cc6e580f8.tar.gz php-shirabe-06368584a9277022d9cfc42d22c37f4cc6e580f8.tar.zst php-shirabe-06368584a9277022d9cfc42d22c37f4cc6e580f8.zip | |
refactor(external-packages): drop component segment from symfony paths
Align the Symfony namespace mapping with the documented convention
(symfony::component::X -> symfony::X) and remove now-unused console
stub files. Update all import paths across the workspace.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe-external-packages/src/symfony/finder/finder.rs')
| -rw-r--r-- | crates/shirabe-external-packages/src/symfony/finder/finder.rs | 163 |
1 files changed, 163 insertions, 0 deletions
diff --git a/crates/shirabe-external-packages/src/symfony/finder/finder.rs b/crates/shirabe-external-packages/src/symfony/finder/finder.rs new file mode 100644 index 0000000..59a6ad1 --- /dev/null +++ b/crates/shirabe-external-packages/src/symfony/finder/finder.rs @@ -0,0 +1,163 @@ +use crate::symfony::finder::SplFileInfo; + +/// Helper trait so `Finder::exclude` accepts both single strings and slices +/// (PHP's variadic / array argument compatibility). +pub trait IntoFinderExclude {} +impl IntoFinderExclude for &str {} +impl IntoFinderExclude for String {} +impl IntoFinderExclude for &String {} +impl IntoFinderExclude for &[String] {} +impl IntoFinderExclude for &Vec<String> {} +impl IntoFinderExclude for Vec<String> {} + +#[derive(Debug)] +pub struct Finder; + +impl Default for Finder { + fn default() -> Self { + Self::new() + } +} + +impl Finder { + pub fn new() -> Self { + todo!() + } + + pub fn create() -> Self { + todo!() + } + + pub fn files(&mut self) -> &mut Self { + todo!() + } + + pub fn directories(&mut self) -> &mut Self { + todo!() + } + + pub fn depth(&mut self, _level: i64) -> &mut Self { + todo!() + } + + pub fn r#in(&mut self, _dirs: &str) -> &mut Self { + todo!() + } + + pub fn filter(&mut self, _closure: Box<dyn FnMut(&std::path::Path) -> bool>) -> &mut Self { + todo!() + } + + pub fn follow_links(&mut self) -> &mut Self { + todo!() + } + + pub fn exclude<E: IntoFinderExclude>(&mut self, _exclude: E) -> &mut Self { + todo!() + } + + pub fn ignore_vcs(&mut self, _ignore_vcs: bool) -> &mut Self { + todo!() + } + + pub fn ignore_dot_files(&mut self, _ignore_dot_files: bool) -> &mut Self { + todo!() + } + + pub fn not_name(&mut self, _pattern: &str) -> &mut Self { + todo!() + } + + pub fn not_path(&mut self, _pattern: &str) -> &mut Self { + todo!() + } + + pub fn name(&mut self, _pattern: &str) -> &mut Self { + todo!() + } + + pub fn sort<F>(&mut self, _comparator: F) -> &mut Self + where + F: FnMut(&SplFileInfo, &SplFileInfo) -> i64, + { + todo!() + } + + pub fn sort_by_name(&mut self) -> &mut Self { + todo!() + } + + pub fn sort_by_accessed_time(&mut self) -> &mut Self { + todo!() + } + + pub fn date(&mut self, _date: &str) -> &mut Self { + todo!() + } + + pub fn get_iterator(&self) -> FinderIterator { + todo!() + } + + pub fn iter(&self) -> impl Iterator<Item = SplFileInfo> { + todo!(); + std::iter::empty() + } + + /// PHP: Finder implements Countable. + pub fn len(&self) -> usize { + todo!() + } + + pub fn is_empty(&self) -> bool { + self.len() == 0 + } +} + +impl IntoIterator for &Finder { + type Item = SplFileInfo; + type IntoIter = std::vec::IntoIter<SplFileInfo>; + + fn into_iter(self) -> Self::IntoIter { + todo!() + } +} + +#[derive(Debug)] +pub struct FinderIterator; + +impl FinderIterator { + pub fn valid(&self) -> bool { + todo!() + } + + pub fn current(&self) -> SplFileInfo { + todo!() + } +} + +impl Iterator for FinderIterator { + type Item = SplFileInfo; + + fn next(&mut self) -> Option<SplFileInfo> { + todo!() + } +} + +impl IntoIterator for Finder { + type Item = SplFileInfo; + type IntoIter = std::vec::IntoIter<SplFileInfo>; + + fn into_iter(self) -> Self::IntoIter { + todo!() + } +} + +impl IntoIterator for &mut Finder { + type Item = SplFileInfo; + type IntoIter = std::vec::IntoIter<SplFileInfo>; + + fn into_iter(self) -> Self::IntoIter { + todo!() + } +} |
