qualifier_attr 0.1.4

Procedural macro attributes for adding "qualifiers" (pub, async, unsafe, extern "C",...) to various items.
Documentation

qualifier_attr

Latest Version Downloads Documentation License Dependency Status

Procedural macro attributes for adding "qualifiers" to various items.

At the moment, the crate supports only functions with the following "qualifiers":

  • pub, pub(crate), ... - visibility qualifiers
  • async - async qualifier
  • unsafe - unsafe qualifier
  • const - const qualifier
  • extern "ABI" - ABI qualifier

as well as structures and modules with pub, pub(crate), etc visibility qualifiers.

Examples

use qualifier_attr::fn_qualifiers;

// We can add a qualifier to a function
// with an attribute.
#[fn_qualifiers(const)]
fn const_fn() -> u32 { 42 }

const CONST_RES: u32 = const_fn();

// It's not so impresive on its own
// but with cfg_attr it can be conditional.

#[cfg_attr(feature = "extern_c", no_mangle, fn_qualifiers(pub, extern "C"))]
fn extern_c_fn() -> u32 { 42 }

Learn more about cfg_attr here.

Similar crates

License