diff options
Diffstat (limited to 'crates/shirabe-symfony-console/src/output/output_interface.rs')
| -rw-r--r-- | crates/shirabe-symfony-console/src/output/output_interface.rs | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/crates/shirabe-symfony-console/src/output/output_interface.rs b/crates/shirabe-symfony-console/src/output/output_interface.rs new file mode 100644 index 00000000..cdc78144 --- /dev/null +++ b/crates/shirabe-symfony-console/src/output/output_interface.rs @@ -0,0 +1,64 @@ +//! ref: composer/vendor/symfony/console/Output/OutputInterface.php + +use crate::formatter::OutputFormatterInterface; + +pub const VERBOSITY_QUIET: i64 = 16; +pub const VERBOSITY_NORMAL: i64 = 32; +pub const VERBOSITY_VERBOSE: i64 = 64; +pub const VERBOSITY_VERY_VERBOSE: i64 = 128; +pub const VERBOSITY_DEBUG: i64 = 256; + +pub const OUTPUT_NORMAL: i64 = 1; +pub const OUTPUT_RAW: i64 = 2; +pub const OUTPUT_PLAIN: i64 = 4; + +/// OutputInterface is the interface implemented by all Output classes. +pub trait OutputInterface: std::fmt::Debug + shirabe_php_shim::AsAny { + /// Writes a message to the output. + /// + /// `$messages` is a single string or an iterable of strings. + fn write(&self, messages: &[String], newline: bool, options: i64); + + /// Writes a message to the output and adds a newline at the end. + fn writeln(&self, messages: &[String], options: i64); + + /// Sets the verbosity of the output. + fn set_verbosity(&self, level: i64); + + /// Gets the current verbosity of the output. + fn get_verbosity(&self) -> i64; + + /// Returns whether verbosity is quiet (-q). + fn is_quiet(&self) -> bool; + + /// Returns whether verbosity is verbose (-v). + fn is_verbose(&self) -> bool; + + /// Returns whether verbosity is very verbose (-vv). + fn is_very_verbose(&self) -> bool; + + /// Returns whether verbosity is debug (-vvv). + fn is_debug(&self) -> bool; + + /// Sets the decorated flag. + fn set_decorated(&self, decorated: bool); + + /// Gets the decorated flag. + fn is_decorated(&self) -> bool; + + fn set_formatter( + &self, + formatter: std::rc::Rc<std::cell::RefCell<dyn OutputFormatterInterface>>, + ); + + /// Returns current output formatter instance. + fn get_formatter(&self) -> std::rc::Rc<std::cell::RefCell<dyn OutputFormatterInterface>>; + + /// Downcast hook standing in for PHP's `$output instanceof ConsoleOutputInterface` + /// (cf. `InputInterface::as_streamable`). Only `ConsoleOutput` returns `Some`. + fn as_console_output( + &self, + ) -> Option<&dyn crate::output::console_output_interface::ConsoleOutputInterface> { + None + } +} |
