Module rustc::pluginUnstable
[-] [+]
[src]
Infrastructure for compiler plugins.
Plugins are Rust libraries which extend the behavior of rustc
in various ways.
Plugin authors will use the Registry
type re-exported by
this module, along with its methods. The rest of the module
is for use by rustc
itself.
To define a plugin, build a dylib crate with a
#[plugin_registrar]
function:
#![crate_name = "myplugin"] #![crate_type = "dylib"] #![feature(plugin_registrar)] extern crate rustc; use rustc::plugin::Registry; #[plugin_registrar] pub fn plugin_registrar(reg: &mut Registry) { reg.register_macro("mymacro", expand_mymacro); } fn expand_mymacro(...) { // details elided
WARNING: We currently don't check that the registrar function has the appropriate type!
To use a plugin while compiling another crate:
#![feature(plugin)] #![plugin(myplugin)]
See the compiler plugin guide for more examples.
Reexports
pub use self::registry::Registry; |
Modules
build | Used by |
load | Used by |
registry | Used by plugin crates to tell |