# Rustic Hal
A simple library for serializing (and deserializing coming soon) resources following the [HAL Spec](https://tools.ietf.org/html/draft-kelly-json-hal-08)
[![Clippy Linting Result](https://clippy.bashy.io/github/pduval/rustic_hal/master/badge.svg)](https://clippy.bashy.io/github/pduval/rustic_hal/master/log)
[![Build Status](https://travis-ci.org/pduval/rustic_hal.svg)](https://travis-ci.org/pduval/rustic_hal)
[![](http://meritbadge.herokuapp.com/rustic_hal)](https://crates.io/crates/rustic_hal)
## Usage
### On stable rust (>= 1.15)
Add the dependency to your Cargo.toml:
```toml
[dependencies]
rustic_hal="0.2"
serde="1.0"
serde_json="1.0"
serde_derive="1.0"
```
and to use:
```rust
extern crate rustic_hal;
extern crate serde;
#[macro_use]
extern crate serde_derive;
extern crate serde_json;
use rustic_hal::*;
use serde_json::to_string;
#[derive(Serialize)]
pub struct MyResource {
pub test: String,
}
fn main() {
let mr = MyResource {
test: "Hello, World!".to_string(),
};
let hal_res = HalResource::new(mr).with_link("self", "/api/myresource/0");
println!("json representation: {:?}", to_string(&hal_res));
}
```
## Documentation
see [https://pduval.github.io/rustic_hal/rustic_hal/](https://pduval.github.io/rustic_hal/rustic_hal/) for the cargo-doc pages.
## Credits
This library is heavily inspired by (read copied from) the [hal-rs](https://github.com/hjr3/hal-rs) library by Herman J. Radtke III.