gostd_derive 0.0.3

proc_macro_derive library for gostd.
Documentation
# [gostd_derive]https://github.com/wandercn/gostd_derive

[![crates.io](https://img.shields.io/crates/v/gostd_derive.svg?color=yellow)](https://crates.io/crates/gostd_derive)
[![Released API docs](https://docs.rs/gostd_derive/badge.svg)](https://docs.rs/gostd_derive)
[![GPL3 licensed](https://img.shields.io/github/license/wandercn/gostd_derive.svg)](./LICENSE)
[![Downloads of Crates.io](https://img.shields.io/crates/d/gostd_derive.svg)](https://crates.io/crates/gostd_derive)
[![Lines of code](https://img.shields.io/tokei/lines/github/wandercn/gostd_derive.svg)](#)
[![Build](https://img.shields.io/github/workflow/status/wandercn/gostd/Rust.svg)](#)
[![Languages](https://img.shields.io/github/languages/top/wandercn/gostd_derive.svg)](#)

proc_macro_derive library for [gostd](https://github.com/wandercn/gostd).


## Fmt

 用宏模拟实现Go中的Stringer接口。
 在Go中printf函数,自动打印自定义实现的String方法返回内容。

- 使用方法 

`#[derive(Fmt)]`

example:
```
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表示如下。
```rust
impl fmt::Display for Foo {
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
        write!(f, "{}", self.String())
    }
} 
```

- 如何调试

本库只使用官方的proc_macro没有办法调试。
唯一方法,只有运行 `cargo check` 检查,不报错就没问题。