aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe-external-packages/src/symfony/component
diff options
context:
space:
mode:
Diffstat (limited to 'crates/shirabe-external-packages/src/symfony/component')
-rw-r--r--crates/shirabe-external-packages/src/symfony/component/console/application.rs12
-rw-r--r--crates/shirabe-external-packages/src/symfony/component/console/helper/helper_set.rs2
-rw-r--r--crates/shirabe-external-packages/src/symfony/component/console/helper/progress_bar.rs4
-rw-r--r--crates/shirabe-external-packages/src/symfony/component/console/output/console_output.rs10
-rw-r--r--crates/shirabe-external-packages/src/symfony/component/console/output/output_interface.rs22
-rw-r--r--crates/shirabe-external-packages/src/symfony/component/filesystem/exception/io_exception.rs15
-rw-r--r--crates/shirabe-external-packages/src/symfony/component/finder/finder.rs41
-rw-r--r--crates/shirabe-external-packages/src/symfony/component/process/process.rs4
8 files changed, 98 insertions, 12 deletions
diff --git a/crates/shirabe-external-packages/src/symfony/component/console/application.rs b/crates/shirabe-external-packages/src/symfony/component/console/application.rs
index bc64521..1197792 100644
--- a/crates/shirabe-external-packages/src/symfony/component/console/application.rs
+++ b/crates/shirabe-external-packages/src/symfony/component/console/application.rs
@@ -89,4 +89,16 @@ impl Application {
pub fn is_single_command(&self) -> bool {
todo!()
}
+
+ pub fn render_throwable(&self, _exception: &anyhow::Error, _output: &mut dyn OutputInterface) {
+ todo!()
+ }
+
+ pub fn set_catch_errors(&mut self, _catch_errors: bool) {
+ todo!()
+ }
+
+ pub fn has(&self, _name: &str) -> bool {
+ todo!()
+ }
}
diff --git a/crates/shirabe-external-packages/src/symfony/component/console/helper/helper_set.rs b/crates/shirabe-external-packages/src/symfony/component/console/helper/helper_set.rs
index f8b2e24..26af492 100644
--- a/crates/shirabe-external-packages/src/symfony/component/console/helper/helper_set.rs
+++ b/crates/shirabe-external-packages/src/symfony/component/console/helper/helper_set.rs
@@ -8,7 +8,7 @@ impl HelperSet {
todo!()
}
- pub fn get(&self, _name: &str) -> Option<PhpMixed> {
+ pub fn get(&self, _name: &str) -> PhpMixed {
todo!()
}
diff --git a/crates/shirabe-external-packages/src/symfony/component/console/helper/progress_bar.rs b/crates/shirabe-external-packages/src/symfony/component/console/helper/progress_bar.rs
index 64835bb..b3aefef 100644
--- a/crates/shirabe-external-packages/src/symfony/component/console/helper/progress_bar.rs
+++ b/crates/shirabe-external-packages/src/symfony/component/console/helper/progress_bar.rs
@@ -31,4 +31,8 @@ impl ProgressBar {
pub fn get_max_steps(&self) -> i64 {
todo!()
}
+
+ pub fn set_progress(&mut self, _step: i64) {
+ todo!()
+ }
}
diff --git a/crates/shirabe-external-packages/src/symfony/component/console/output/console_output.rs b/crates/shirabe-external-packages/src/symfony/component/console/output/console_output.rs
index 73c5c46..f9792f0 100644
--- a/crates/shirabe-external-packages/src/symfony/component/console/output/console_output.rs
+++ b/crates/shirabe-external-packages/src/symfony/component/console/output/console_output.rs
@@ -19,13 +19,13 @@ impl ConsoleOutput {
}
impl OutputInterface for ConsoleOutput {
- fn write(&mut self, _messages: &str, _newline: bool, _type: i64) {
+ fn write(&self, _messages: &str, _newline: bool, _type: i64) {
todo!()
}
- fn writeln(&mut self, _messages: &str, _type: i64) {
+ fn writeln(&self, _messages: &str, _type: i64) {
todo!()
}
- fn set_verbosity(&mut self, _level: i64) {
+ fn set_verbosity(&self, _level: i64) {
todo!()
}
fn get_verbosity(&self) -> i64 {
@@ -43,13 +43,13 @@ impl OutputInterface for ConsoleOutput {
fn is_debug(&self) -> bool {
todo!()
}
- fn set_decorated(&mut self, _decorated: bool) {
+ fn set_decorated(&self, _decorated: bool) {
todo!()
}
fn is_decorated(&self) -> bool {
todo!()
}
- fn set_formatter(&mut self, _formatter: OutputFormatter) {
+ fn set_formatter(&self, _formatter: OutputFormatter) {
todo!()
}
fn get_formatter(&self) -> &OutputFormatter {
diff --git a/crates/shirabe-external-packages/src/symfony/component/console/output/output_interface.rs b/crates/shirabe-external-packages/src/symfony/component/console/output/output_interface.rs
index 62a95bb..22a4b17 100644
--- a/crates/shirabe-external-packages/src/symfony/component/console/output/output_interface.rs
+++ b/crates/shirabe-external-packages/src/symfony/component/console/output/output_interface.rs
@@ -1,18 +1,30 @@
use crate::symfony::component::console::formatter::output_formatter::OutputFormatter;
pub trait OutputInterface {
- fn write(&mut self, messages: &str, newline: bool, r#type: i64);
- fn writeln(&mut self, messages: &str, r#type: i64);
- fn set_verbosity(&mut self, level: i64);
+ // PHP class semantics: OutputInterface methods take &self with interior mutability,
+ // because output objects are shared by reference across the PHP code.
+ fn write(&self, messages: &str, newline: bool, r#type: i64);
+ fn writeln(&self, messages: &str, r#type: i64);
+ fn set_verbosity(&self, level: i64);
fn get_verbosity(&self) -> i64;
fn is_quiet(&self) -> bool;
fn is_verbose(&self) -> bool;
fn is_very_verbose(&self) -> bool;
fn is_debug(&self) -> bool;
- fn set_decorated(&mut self, decorated: bool);
+ fn set_decorated(&self, decorated: bool);
fn is_decorated(&self) -> bool;
- fn set_formatter(&mut self, formatter: OutputFormatter);
+ fn set_formatter(&self, formatter: OutputFormatter);
fn get_formatter(&self) -> &OutputFormatter;
+
+ /// PHP: `$output instanceof ConsoleOutputInterface`. Default false; ConsoleOutput overrides.
+ fn is_console_output_interface(&self) -> bool {
+ false
+ }
+
+ /// PHP: only StreamOutput exposes `getStream()`. Default panics for outputs without one.
+ fn get_stream(&self) -> shirabe_php_shim::PhpResource {
+ todo!("get_stream not available on this OutputInterface implementation")
+ }
}
pub const VERBOSITY_QUIET: i64 = 16;
diff --git a/crates/shirabe-external-packages/src/symfony/component/filesystem/exception/io_exception.rs b/crates/shirabe-external-packages/src/symfony/component/filesystem/exception/io_exception.rs
index 3ffcc9c..a5f2844 100644
--- a/crates/shirabe-external-packages/src/symfony/component/filesystem/exception/io_exception.rs
+++ b/crates/shirabe-external-packages/src/symfony/component/filesystem/exception/io_exception.rs
@@ -5,6 +5,21 @@ pub struct IOException {
pub path: Option<String>,
}
+impl IOException {
+ pub fn new(
+ message: String,
+ code: i64,
+ _previous: Option<Box<dyn std::error::Error + Send + Sync>>,
+ path: Option<String>,
+ ) -> Self {
+ Self {
+ message,
+ code,
+ path,
+ }
+ }
+}
+
impl std::fmt::Display for IOException {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "{}", self.message)
diff --git a/crates/shirabe-external-packages/src/symfony/component/finder/finder.rs b/crates/shirabe-external-packages/src/symfony/component/finder/finder.rs
index 8437ba6..466f17e 100644
--- a/crates/shirabe-external-packages/src/symfony/component/finder/finder.rs
+++ b/crates/shirabe-external-packages/src/symfony/component/finder/finder.rs
@@ -1,5 +1,15 @@
use crate::symfony::component::finder::spl_file_info::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;
@@ -38,7 +48,7 @@ impl Finder {
todo!()
}
- pub fn exclude(&mut self, _exclude: &[String]) -> &mut Self {
+ pub fn exclude<E: IntoFinderExclude>(&mut self, _exclude: E) -> &mut Self {
todo!()
}
@@ -54,10 +64,21 @@ impl Finder {
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!()
}
@@ -78,6 +99,24 @@ impl Finder {
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)]
diff --git a/crates/shirabe-external-packages/src/symfony/component/process/process.rs b/crates/shirabe-external-packages/src/symfony/component/process/process.rs
index d0cc249..227606b 100644
--- a/crates/shirabe-external-packages/src/symfony/component/process/process.rs
+++ b/crates/shirabe-external-packages/src/symfony/component/process/process.rs
@@ -109,4 +109,8 @@ impl Process {
pub fn set_working_directory(&mut self, _cwd: &str) -> &mut Self {
todo!()
}
+
+ pub fn set_tty(&mut self, _tty: bool) -> anyhow::Result<&mut Self> {
+ todo!()
+ }
}