From 56dddebe515a1017d94b3dfc8c7413e8c275cecb Mon Sep 17 00:00:00 2001 From: Weicao-CatilGrass <1992414357@qq.com> Date: Thu, 11 Jun 2026 22:42:25 +0800 Subject: Add `.temp` directory to ignored paths in CI build --- dev_tools/src/lib.rs | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) (limited to 'dev_tools/src/lib.rs') diff --git a/dev_tools/src/lib.rs b/dev_tools/src/lib.rs index ce897df..13ed71f 100644 --- a/dev_tools/src/lib.rs +++ b/dev_tools/src/lib.rs @@ -44,6 +44,16 @@ macro_rules! eprintln_cargo_style { }; } +#[macro_export] +macro_rules! wprintln_cargo_style { + ($fmt:literal, $($arg:tt)*) => { + $crate::wprintln_cargo_style(format!($fmt, $($arg)*)) + }; + ($cmd:expr) => { + $crate::wprintln_cargo_style($cmd) + }; +} + /// Print a message in cargo style format, with bold green prefix. /// /// # Panics @@ -81,6 +91,39 @@ pub fn eprintln_cargo_style(str: impl Into) { println!("{}: {}", "error".bold().bright_red(), str.into()); } +/// Print a message in cargo style format, with bold yellow prefix (warning style). +/// +/// # Panics +/// +/// Panics if the prefix (text before the first `:`) exceeds 12 characters. +pub fn wprintln_cargo_style(str: impl Into) { + let s = str.into(); + let (prefix, content) = if let Some(pos) = s.find(':') { + ( + s[..pos].trim().to_string(), + s[pos + 1..].trim_start().to_string(), + ) + } else { + (String::new(), s.trim().to_string()) + }; + + assert!( + prefix.len() <= 12, + "prefix length exceeds 12: '{}' has length {}", + prefix, + prefix.len() + ); + + let padding = " ".repeat(12 - prefix.len()); + + println!( + "{}{} {}", + padding, + prefix.bold().bright_yellow(), + content.trim() + ); +} + /// Run a shell command and return its exit status. /// /// # Panics -- cgit