defr 0.1.0

Golang `defer` statements but in Rust.
Documentation
# defr

Golang `defer` statements but in Rust.

## Overview

A simple library that provides a convenient macro for wrapping expressions with the `drop` method.

## What is defer?

The meaning might vary but in the Golang context, `defer` is the [finalizer](https://en.wikipedia.org/wiki/Finalizer). Unlike C++ and Rust, Golang does not have destructor equivalents. [More on defer statements.](https://go.dev/ref/spec#Defer_statements)

## Difference

`defer` calls in Golang are pushed onto a stack, then run in a last-in-first-out manner.

```
func main() {
    defer run_4th()
    defer run_3rd()
    run_1st()
    run_2nd()
}
```

The expressions inside `defr!` block remain procedural. 

```
fn main() {
    defr! {
        run_3rd();
        run_4th();
    }
    run_1st();
    run_2nd();
}
```

## Notes

Definitely not a replacement for implementing the `Drop` trait. In fact, in most cases, the [RAII pattern](https://en.wikipedia.org/wiki/Resource_acquisition_is_initialization) is the way.