has 0.1.0

Introducing 'has a' relationship for Rust's traits.
Documentation
## 'Has a' relationship for Rust's traits

This crate offers an alternative for a missing feature of the Rust Programming Language. That
is, the possibility for traits to hold states.

[[![](http://meritbadge.herokuapp.com/has)](https://crates.io/crates/has)
[![License: MPL 2.0](https://img.shields.io/badge/License-MPL%202.0-brightgreen.svg)](https://opensource.org/licenses/MPL-2.0)
[![Travis Build Status](https://travis-ci.org/Proksima/has.svg?branch=master)](https://travis-ci.org/Proksima/has)

### Documentation

http://proksima.github.io/has-doc/has/index.html

### Simple example

```rust
#[macro_use]
extern crate has;

use has::*;

struct Apple;

trait ApplesContainer: HasMut<Vec<Apple>> {
    fn take_apple(&mut self) -> Option<Apple> {
        self.get_mut().pop()
    }

    fn put_apple(&mut self, apple: Apple) {
        self.get_mut().push(apple);
    }
}

#[derive(Default)]
struct Basket {
    pub apples: Vec<Apple>,
}

impl ApplesContainer for Basket {}
impl_has!(Basket, Vec<Apple>, apples);

fn main() {
    let mut basket = Basket::default();

    basket.put_apple(Apple);
    basket.put_apple(Apple);
    basket.put_apple(Apple);

    basket.take_apple();

    assert_eq!(basket.apples.len(), 2);
}
```