2 releases
Uses old Rust 2015
0.1.1 | Jun 19, 2017 |
---|---|
0.1.0 | Jun 17, 2017 |
#73 in #drop
4KB
This crate provides a macro to create a static value that gets created when needed
and dropped as soon as its not needed anymore.
It requires the lazy_static
macro to be imported.
Example
#[macro_use] extern crate lazy_static;
#[macro_use] extern crate weak_static;
struct Foo;
impl Foo {
fn new() -> Self {
println!("new");
Foo
}
}
impl Drop for Foo {
fn drop(&mut self) {
println!("drop");
}
}
weak_static! {
static FOO: Foo = Foo::new();
}
fn main() {
{
let _foo1 = FOO();
let _foo2 = FOO();
let _foo3 = FOO();
}
{
let _foo4 = FOO();
let _foo5 = FOO();
let _foo6 = FOO();
}
}
Outputs:
new
drop
new
drop
The new
prints corresponds to the FOO()
calls of _foo1
and _foo4
.
The drop
prints correspond to the last FOO reference being dropped.