#called #initialization #macro #panic #function #twice #surrounding

no-std once

This crate provides an assert_has_not_been_called! macro that panics if the surrounding function is called twice. Useful for initialization functions.

10 releases

Uses old Rust 2015

0.3.4 Apr 2, 2020
0.3.3 Jul 8, 2017
0.3.2 May 14, 2016
0.2.1 Apr 11, 2016
0.1.3 Apr 11, 2016

#1764 in Rust patterns

Download history 80/week @ 2024-06-17 63/week @ 2024-06-24 3/week @ 2024-07-01 13/week @ 2024-07-08 59/week @ 2024-07-15 60/week @ 2024-07-22 263/week @ 2024-07-29 163/week @ 2024-08-05 169/week @ 2024-08-12 26/week @ 2024-08-19 198/week @ 2024-08-26 39/week @ 2024-09-02 99/week @ 2024-09-09 192/week @ 2024-09-16 79/week @ 2024-09-23 80/week @ 2024-09-30

453 downloads per month
Used in 2 crates

Apache-2.0/MIT

7KB
65 lines

Once

Build Status

This #![no_std] crate provides an assert_has_not_been_called! macro that panics if the surrounding function is called twice. Useful for initialization functions.

Documentation

Example

#[macro_use]
extern crate once;

fn init() {
    assert_has_not_been_called!("the init function must only be called {}", "once");
}

fn main() {
    init();
    // init(); // "the init function must only be called once"
}

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

No runtime deps