rbtag 0.3.0

A procedural macro to add build DateTime and git commit information at compile time
Documentation
# RBTAG

rbtag is a procedural macro designed to add build time information or git commit information to your crate or project. 

## Git Commit Info 

To use the Git commit Info functionality just add `#[derive(BuildInfo)]` to a struct and call `.get_build_commit()` on it. The output looks like the following:

```shell
eaba6e2-dirty
```

OR

```shell
eaba6e2-clean
```

Where clean vs dirty indicates the presence of uncommited changes to tracked files in the repo.

**NOTE** If you have this code continue to return 'dirty', run `git diff` to see what files are causing the issue.

## Build Time Info


To use the Git commit Info functionality just add `#[derive(BuildDateTime)]` to a struct and call `.get_build_timestamp()` on it. In order to comply with https://reproducible-builds.org/, two sources of time are possibly used the following precedence

1) If the environmental variable `SOURCE_DATE_EPOCH` is set, the value in this variable will be used
2) If the environmental variable is **NOT** set, the timestamp of the current git commit is used and displayed as a UNIX timestamp with no fractional component

### Sample output:

The following is an example of running the below 'example' code with and without an environmental variable set
```shell
#$ cargo clean && env SOURCE_DATE_EPOCH='12345678909' cargo run

12345678901
90c2266-dirty
#? cargo clean && cargo run

1547647585
90c2266-dirty
```

## Example

```rust
use rbtag::{BuildDateTime, BuildInfo};

#[derive(BuildDateTime, BuildInfo)]

struct BuildTag;

fn main() {
    println!("{}", BuildTag{}.get_build_timestamp());
    println!("{}", BuildTag{}.get_build_commit());
}

```