1
0
mirror of https://github.com/jht5945/rust_util.git synced 2026-01-14 08:10:04 +08:00

Compare commits

...

3 Commits

Author SHA1 Message Date
c56b7deaaf feat: fix util_term 2023-10-25 01:15:28 +08:00
16e859c785 feat: fix util_term 2023-10-25 01:13:36 +08:00
29519b3a43 feat: v0.6.44 2023-10-25 01:08:58 +08:00
4 changed files with 36 additions and 10 deletions

View File

@@ -1,6 +1,6 @@
[package]
name = "rust_util"
version = "0.6.43"
version = "0.6.45"
authors = ["Hatter Jiang <jht5945@gmail.com>"]
edition = "2018"
description = "Hatter's Rust Util"

View File

@@ -40,6 +40,12 @@ pub mod util_runtime;
#[macro_export] macro_rules! failure {
($($arg:tt)+) => ( rust_util::util_msg::print_error(&format!($($arg)+)); )
}
#[macro_export] macro_rules! println_ex {
($($arg:tt)+) => ( rust_util::util_msg::print_ex(&format!($($arg)+), true); )
}
#[macro_export] macro_rules! print_ex {
($($arg:tt)+) => ( rust_util::util_msg::print_ex(&format!($($arg)+), false); )
}
#[macro_export] macro_rules! debugging {
($($arg:tt)+) => ( rust_util::util_msg::when(rust_util::util_msg::MessageType::DEBUG, || {
rust_util::util_msg::print_debug(&format!($($arg)+))

View File

@@ -14,6 +14,10 @@ pub fn set_logger_std_out(is_std_out: bool) {
*std_out = is_std_out;
}
pub fn get_logger_std_out() -> bool {
*LOGGER_TO_STDOUT.read().unwrap()
}
#[allow(clippy::upper_case_acronyms)]
#[derive(Clone, Copy)]
pub enum MessageType { DEBUG, INFO, OK, WARN, ERROR }
@@ -101,9 +105,7 @@ pub fn print_color_and_flush(color: Option<term::color::Color>, is_bold: bool, m
}
pub fn print_message_ex(color: Option<term::color::Color>, h: &str, message: &str) {
let is_std_out = {
*LOGGER_TO_STDOUT.read().unwrap()
};
let is_std_out = get_logger_std_out();
let mut lock = PRINT_MESSAGE_LOCK.lock().unwrap();
print_color(is_std_out, color, true, h);
if is_std_out {
@@ -114,6 +116,22 @@ pub fn print_message_ex(color: Option<term::color::Color>, h: &str, message: &st
*lock = ();
}
pub fn print_ex(message: &str, new_line: bool) {
if get_logger_std_out() {
if new_line {
println!("{}", message)
} else {
print!("{}", message)
}
} else {
if new_line {
eprintln!("{}", message)
} else {
eprint!("{}", message)
}
}
}
pub fn print_ok(message: &str) { print_message(MessageType::OK, message); }
pub fn print_warn(message: &str) { print_message(MessageType::WARN, message); }

View File

@@ -1,5 +1,7 @@
use std::io::{self, Write};
use crate::util_msg;
pub const RED: &str = "\x1B[91m";
pub const GREEN: &str = "\x1B[92m";
pub const YELLOW: &str = "\x1B[93m";
@@ -9,7 +11,7 @@ pub const END: &str = "\x1B[0m";
pub fn read_yes_no(hint: &str) -> bool {
loop {
print!("{} (Yes/No): ", hint);
util_msg::print_ex(&format!("{} (Yes/No): ", hint), false);
io::stdout().flush().ok();
let mut buff = String::new();
let _ = io::stdin().read_line(&mut buff).expect("Read line from stdin");