An open API service indexing awesome lists of open source software.

https://github.com/sunng87/tojson_macros

Simple rust syntax extension generates default ToJson implementation
https://github.com/sunng87/tojson_macros

Last synced: 3 months ago
JSON representation

Simple rust syntax extension generates default ToJson implementation

Awesome Lists containing this project

README

          

# tojson_macros

This is a Rust syntax extension generates default `::rustc_serialize::json::ToJson`
implementation for you. This library now uses macros 1.1 for code
generation. However it still requires rust nightly to build on.

[![](http://meritbadge.herokuapp.com/tojson_macros)](https://crates.io/crates/tojson_macros)
[![Build Status](https://travis-ci.org/sunng87/tojson_macros.svg?branch=master)](https://travis-ci.org/sunng87/tojson_macros)

## Crate

```toml
tojson_macros = "^0.3"
```

## Example

Simply add `#[derive(ToJson)]` to your struct. Currently only Struct
is supported.

```rust
#![feature(proc_macro)]

#[macro_use]
extern crate tojson_macros;

extern crate rustc_serialize;

use rustc_serialize::json::ToJson;

#[derive(ToJson)]
struct Person {
name: String,
age: u8
}

let p = Person { name: "Ning".to_string(), age: 28u8 };
println!("{}", p.to_json());
```

## License

Licensed under either of

* Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
* MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)
at your option.

### Contribution

Unless you explicitly state otherwise, any contribution intentionally
submitted for inclusion in the work by you, as defined in the
Apache-2.0 license, shall be dual licensed as above, without any
additional terms or conditions.