stringify-attr 1.0.0

Attribute macros for stringifying
Documentation
# stringify-attr


[![Crate Version](https://img.shields.io/crates/v/stringify-attr.svg)](https://crates.io/crates/stringify-attr)
[![Documentation](https://docs.rs/stringify-attr/badge.svg)](https://docs.rs/stringify-attr)
[![Zlib](https://img.shields.io/badge/license-zlib%20License-blue.svg)](https://opensource.org/licenses/Zlib)

Attribute macros for stringifying. Probably only useful in unit tests and debugging, but who knows.

## Usage


Basically these macros allow you to stringify using attribute macros instead of the normal `stringify!`. Since attribute macros must produce an item. Each macro produces a `result!` macro which expands to the desired string.

You can stringify just attributes:
```rust
use stringify_attr::stringify_attr;

assert_eq!(
    {
        #[stringify_attr(foo)] struct Foo;
        result!()
    },
    "foo"
);
```
Just items:
```rust
use stringify_attr::stringify_item;

assert_eq!(
    {
        #[stringify_item(foo)] struct Foo;
        result!()
    },
    "struct Foo;"
);
```
Or the whole thing:
```rust
use stringify_attr::stringify_all;

assert_eq!(
    {
        #[stringify_all(foo)] struct Foo;
        result!()
    },
    "#[stringify_all(foo)] struct Foo;"
);
```

Since attribute macros cannot differential being invoked with different delimeters, different attributes are provided:
```rust
use stringify_attr::stringify_braces as stringify_all;

assert_eq!(
    {
        #[stringify_all{foo}] struct Foo;
        result!()
    },
    "#[stringify_all{foo}] struct Foo;"
);
```

Note that these attributes still produce the text `"stringify_all"` in the output.