3个版本
0.0.3 | 2021年9月28日 |
---|---|
0.0.2 | 2021年9月28日 |
0.0.1 | 2021年9月28日 |
#6 在 #gostd
136 每月下载次数
在 8 个crate中使用 (直接使用2个)
6KB
gostd derive
为 gostd 提供的 proc_macro_derive 库。
格式化
使用宏模拟实现Go中的Stringer接口。在Go中的printf函数,自动打印自定义实现的String方法返回内容。
- 使用方法
#[derive(格式化)]
示例
use gostd_derive::Fmt;
#[derive(Fmt)]
struct Foo{
name:String,
}
// 必须为附加Fmt继承宏的Struct 或者 Emun 实现String方法才能正常运行
impl Foo {
fn String()->String{
"test".to_string()
}
}
- 功能逻辑
Fmt功能就是继承Display并调用String()方法,在println!()实现自定义打印格式。
功能的Rust表示如下。
impl fmt::Display for Foo {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "{}", self.String())
}
}
- 如何调试
本库只使用官方的proc_macro没有办法调试。唯一方法,只有运行 cargo check
检查,不报错就没问题。
依赖项
~1.5MB
~36K SLoC