use super::config::OutputMode;
use std::io::{self, Write};
pub fn write_output(
mode: OutputMode,
is_display: bool,
args: std::fmt::Arguments,
) -> io::Result<()> {
match (mode, is_display) {
(OutputMode::Cli, true) => {
print!("{args}");
io::stdout().flush()
}
(OutputMode::Cli, false) => {
eprint!("{args}");
io::stderr().flush()
}
(OutputMode::Mcp, _) => {
eprint!("{args}");
io::stderr().flush()
}
}
}
pub fn writeln_output(
mode: OutputMode,
is_display: bool,
args: std::fmt::Arguments,
) -> io::Result<()> {
match (mode, is_display) {
(OutputMode::Cli, true) => {
println!("{args}");
io::stdout().flush()
}
(OutputMode::Cli, false) => {
eprintln!("{args}");
io::stderr().flush()
}
(OutputMode::Mcp, _) => {
eprintln!("{args}");
io::stderr().flush()
}
}
}