r4d 3.0.0-rc.2

Text oriented macro processor
Documentation
### Storage

Storage features provdies a single trait of ```RadStorage``` which implements
```update``` and ```extract```.

You can call update and extract method with update and extract macro respectively.

#### Example

You need to import [Serde](https://github.com/serde-rs/serde) in your proejct
for stroage.

Create storage struct

```rust
use serde::{Serialize,Deserialize};
use r4d::{StorageOutput, StorageResult};

#[derive(Serialize,Deserialize)]
pub struct PlotModel {
	// informations
	...
}

impl RadStorage for PlotModel {
	fn update(&mut self, args : &[String]) -> StorageResult<()> {
		// Update logics
	}

	// $extract() macro calls extract method with the serialize value of "false"
	fn extract(&mut self, serialize: bool) -> StorageResult<Option<StorageOutput>> {
		if serialize {
			Ok(Some(StorageOutput::Binary(bincode::serialize(self)?)))
		} else {
			Ok(Some(StorageOutput::Text(serde_json::to_string(self)?)))
		}
	}
}
```
And add storage to processor before processing.

```rust
processor.set_storage(Box::new(PlotModel::default()));
```