rdefer 1.0.0

A Rust crate providing go like defer functionality in both sync and async contexts.
Documentation
  • Coverage
  • 100%
    4 out of 4 items documented0 out of 3 items with examples
  • Size
  • Source code size: 11.07 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 172.76 kB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 8s Average build duration of successful builds.
  • all releases: 8s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • alexthe2

rdefer

A Rust crate providing defer functionality for both synchronous and asynchronous code.

Usage

Synchronous Defer

use rdefer::defer;

let _d = defer!({
    println!("This will be printed last");
});
println!("This will be printed first");

Asynchronous Defer (Feature gated)

This feature is behind the async feature flag.

To use this feature, add rdefer to your Cargo.toml with the async feature enabled:

[dependencies]
rdefer = { version = "*", features = ["async"] }

Then you can use it as follows:

use rdefer::{async_defer, exec_before_defer};
use std::sync::Arc;

let defer = async_defer!(2, async {
    println!("This will be printed last");
});

exec_before_defer!(defer, || println!("This will be printed first"));
exec_before_defer!(defer, || println!("This will be printed second"));