Module rustc_trans::pluginExperimental
[-]
[+]
[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(phase)] #[phase(plugin)] extern crate myplugin;
If you also need the plugin crate available at runtime, use
phase(plugin, link).
See the compiler plugin guide for more examples.
Modules
| build | Used by |
| load | Used by |
| registry | Used by plugin crates to tell |
Structs
| Registry | Structure used to register plugins. |