deps-gen 0.2.1

Generate a file from template and Cargo.lock
Documentation
# deps-gen
*From `Cargo.lock` to a generated file.*

# Why?

The goal is to generate a file from a template with dependencies from `Cargo.lock`.

# How?
## Build
In `Cargo.toml`, add the following line:
```toml
[build-dependencies]
deps-gen = "*"
```
then in your `build.rs`:
```rust
use deps_gen;

fn main() {
    gen_deps();
    // // or
    // let mut configuration = deps::Configuration::new()
    // // do some changes to configuration here
    // deps::gen_deps_with_conf(configuration);
}
```

The default configuration will take a `src/deps.template.rs` file and generate a `src/deps.rs` .

## Templating
The library uses handlebars with the default [supported syntax](https://docs.rs/handlebars/5.1.0/handlebars/#built-in-helpers).
The supported field are
- `dependencies`, an array with the following values
  - `name`
  - `version`
  - `authors`
  - `id`
  - `source`
  - `description`
  - `dependencies`
  - `license`
  - `license_file`
  - `targets`
  - `features`
  - `manifest_path`
  - `categories`
  - `keywords`
  - `readme`
  - `repository`
  - `homepage`
  - `documentation`
  - `edition`

see [Rust manifest reference](https://doc.rust-lang.org/cargo/reference/manifest.html#the-documentation-field) for fields details

Also note that `//{}` is replaced with ` ` (an empty string) after template processing. This allows to cleanup.

## An example

`deps.template.rs`:

```rust
#[allow(dead_code)]

pub struct License {
    pub name: &'static str,
    pub version: &'static str,
}

impl License {
    pub fn all() -> Vec<Self> {
        vec![
            //{}{{#each dependencies}}
            Self {
                name: "{{name}}",
                version: "{{version}}",
            },
            //{}{{/each}}
        ]
    }
}
```