use std::io::Write;
pub fn stdout(s: &str) -> std::io::Result<()> {
let mut out = std::io::stdout().lock();
match out.write_all(s.as_bytes()).and_then(|()| out.flush()) {
Err(e) if e.kind() == std::io::ErrorKind::BrokenPipe => Ok(()),
other => other,
}
}
pub fn stderr_line(s: &str) {
let mut err = std::io::stderr().lock();
let _ = err.write_all(s.as_bytes());
let _ = err.write_all(b"\n");
let _ = err.flush();
}
pub fn print(s: &str) -> i32 {
match stdout(s) {
Ok(()) => 0,
Err(e) => {
stderr_line(&format!("jscd: {e}"));
1
}
}
}