3 个版本
0.0.3 | 2023年11月5日 |
---|---|
0.0.2 | 2023年7月25日 |
0.0.1 | 2023年7月23日 |
#128 在 值格式化
1,327 每月下载量
用于 inlyne
11KB
73 行
⚠️ !!目前这是预_alpha 软件!! ⚠️
通过 derive 宏允许轻松操作调试格式
use smart_debug::SmartDebug;
use std::fmt;
#[derive(SmartDebug, Default)]
#[debug(skip_defaults)]
struct Text {
#[debug(no_skip)]
text: &'static str,
#[debug("0x{:06x}")]
color: u32,
#[debug(wrapper = DebugInline)]
hyperlink: Option<&'static str>,
is_bold: bool,
is_italics: bool,
}
// Wrapper that displays inline even when using pretty formatting (`{:#?}`)
struct DebugInline<'inner, T>(pub &'inner T);
impl<T: fmt::Debug> fmt::Debug for DebugInline<'_, T> {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
f.write_fmt(format_args!("{:?}", self.0))
}
}
const HYPERLINK: &str = r#"
Text {
text: "Look! A link",
color: 0x005cc5,
hyperlink: Some("https://example.org"),
is_italics: true,
..
}
"#;
fn main() {
let hyperlink = Text {
text: "Look! A link",
hyperlink: Some("https://example.org"),
color: 0x00_5c_c5,
is_italics: true,
..Text::default()
};
let formatted = format!("\n{hyperlink:#?}\n");
assert_eq!(formatted, HYPERLINK);
}
依赖项
~290–740KB
~18K SLoC