impl-opaque 0.1.0

Macro for declaring complex struct and initializer
Documentation
# `retained`

[Documentation](https://docs.rs/retained/latest)

Keep local variables between repeated function calls using simple macro.

This crate is no_std.

## Usage

```rust no_run
use retained::retained;

#[retained(DrawState)]

fn draw() {
    #[retained]
    let ref mut check_box: CheckBox = CheckBox::new(/* checked */ false);
    check_box.draw();
}

fn draw_loop() {
    let mut state = DrawState::new();

    loop {
        draw(&mut state);
    }
}
```
Without `retained`, Checkbox's states would be reset on every `draw` call.
By using `retained`, local variable `check_box` is kept inside `DrawState` struct.
And `draw` function gets additional `&mut DrawState` argument.

## Examples

See `examples` for simple example and egui demo ported using `retained`.

## License

This crate is licensed under MIT OR Apache-2.0