9 releases (4 breaking)
0.4.0 | Jun 21, 2024 |
---|---|
0.3.0 | Jun 20, 2024 |
0.2.0 | Jun 7, 2024 |
0.1.0 | Jun 6, 2024 |
0.0.4 | Jun 5, 2024 |
#125 in Caching
587 downloads per month
4KB
retained
Keep local variables between repeated function calls using simple macro.
This crate is no_std.
Usage
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
Dependencies
~250–700KB
~17K SLoC