Sha256: d00fe19aecd7ca1632bcf176306f7a13ed8fdefa890761aa2c532f8c97532a33

Contents?: true

Size: 492 Bytes

Versions: 8

Compression:

Stored size: 492 Bytes

Contents

#[macro_use(defer)] extern crate scopeguard;

use scopeguard::guard;

fn f() {
    defer!(println!("Called at return or panic"));
    panic!();
}

use std::fs::File;
use std::io::Write;

fn g() {
    let f = File::create("newfile.txt").unwrap();
    let mut file = guard(f, |f| {
        // write file at return or panic
        let _ = f.sync_all();
    });
    // Access the file through the scope guard itself
    file.write_all(b"test me\n").unwrap();
}

fn main() {
    f();
    g();
}

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
wasmtime-9.0.1 ./ext/cargo-vendor/scopeguard-1.1.0/examples/readme.rs
wasmtime-8.0.0 ./ext/cargo-vendor/scopeguard-1.1.0/examples/readme.rs
wasmtime-7.0.0 ./ext/cargo-vendor/scopeguard-1.1.0/examples/readme.rs
wasmtime-6.0.1 ./ext/cargo-vendor/scopeguard-1.1.0/examples/readme.rs
wasmtime-6.0.0 ./ext/cargo-vendor/scopeguard-1.1.0/examples/readme.rs
wasmtime-5.0.0 ./ext/cargo-vendor/scopeguard-1.1.0/examples/readme.rs
wasmtime-0.4.1 ./ext/cargo-vendor/scopeguard-1.1.0/examples/readme.rs
wasmtime-0.4.0 ./ext/cargo-vendor/scopeguard-1.1.0/examples/readme.rs