#macro #collision #proc-macro #namespaces

macro no-std exclusive

Place code into an exclusive context that won't collide with another context

1 unstable release

Uses old Rust 2015

0.1.0 May 4, 2019

#52 in #collision

MIT/Apache

8KB

Exclusive

travis build status crates.io downloads API docs rustc ^1.30.0

A procedural macro for wrapping code in a collision-free context.

Installation

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.0"

and this to your crate root (main.rs or lib.rs):

#[macro_use]
extern crate exclusive;

Usage

The exclusive! macro allows for placing blocks of code in a context that won't collide with other calls to the macro in the same namespace:

exclusive! {
    let x = 20;
    let y = 30;
}

exclusive! {
    // This code doesn't actually run
    println!("Hello, world!");
}

Purpose

This project was made to be used by static_assertions to prevent different assertions from colliding with the same identifier.

Changes

See CHANGELOG.md for a complete list of what has changed from one version to another.

License

This project is released under either:

at your choosing.

No runtime deps

Features