mirror of https://github.com/zeldaret/botw.git
60 lines
1.3 KiB
Rust
60 lines
1.3 KiB
Rust
use colored::*;
|
|
use std::io::StderrLock;
|
|
use std::io::Write;
|
|
use textwrap::indent;
|
|
|
|
use crate::functions;
|
|
|
|
pub fn print_note(msg: &str) {
|
|
eprintln!("{}{}{}", "note".bold().cyan(), ": ".bold(), msg.bold())
|
|
}
|
|
|
|
pub fn print_warning(msg: &str) {
|
|
eprintln!("{}{}{}", "warning".bold().yellow(), ": ".bold(), msg.bold())
|
|
}
|
|
|
|
pub fn print_error(msg: &str) {
|
|
let stderr = std::io::stderr();
|
|
let mut lock = stderr.lock();
|
|
print_error_ex(&mut lock, msg);
|
|
}
|
|
|
|
pub fn print_error_ex(lock: &mut StderrLock, msg: &str) {
|
|
writeln!(
|
|
lock,
|
|
"{}{}{}",
|
|
"error".bold().red(),
|
|
": ".bold(),
|
|
msg.bold()
|
|
)
|
|
.unwrap();
|
|
}
|
|
|
|
pub fn format_symbol_name(name: &str) -> String {
|
|
functions::demangle_str(name).map_or(name.blue().to_string(), |demangled| {
|
|
format!("{} ({})", demangled.blue(), name.blue().dimmed(),)
|
|
})
|
|
}
|
|
|
|
pub fn format_address(addr: u64) -> String {
|
|
format!("{:#x}", addr).green().to_string()
|
|
}
|
|
|
|
pub fn print_detail(msg: &str) {
|
|
let stderr = std::io::stderr();
|
|
let mut lock = stderr.lock();
|
|
print_detail_ex(&mut lock, msg);
|
|
}
|
|
|
|
pub fn print_detail_ex(lock: &mut StderrLock, msg: &str) {
|
|
writeln!(
|
|
lock,
|
|
"{}\n",
|
|
indent(
|
|
&msg.clear().to_string(),
|
|
&" │ ".bold().dimmed().to_string()
|
|
)
|
|
)
|
|
.unwrap();
|
|
}
|