Expand description
Create exclusive contexts around your code that should not collide with
other calls to exclusive!
.
The exclusive!
macro works by making a “unique” ID for each call site and
using that ID to create a unique const
declaration.
§Purpose
This project was made to be used by
static_assertions
to
prevent different assertions from colliding with the same identifier.
§Usage
This crate is available on crates.io and can be used by adding the
following to your project’s Cargo.toml
:
[dependencies]
exclusive = "0.1"
and this to your crate root (main.rs
or lib.rs
):
#[macro_use]
extern crate exclusive;
Then, when calling the macro, you can place any code you want inside it!
exclusive! {
let x = 20;
let y = 30;
}
exclusive! {
// This code doesn't actually run
println!("Hello, world!");
}
With the nightly
feature enabled, a const
the identifier _
is used
internally instead. This simply avoids having to generate a new identifier
each time.
ⓘ
#![feature(underscore_const_names)]
exclusive! {
// Do stuff here
}
exclusive! {
// Do other stuff here
}
Macros§
- exclusive
- Creates an exclusive context. 😎