Found a few 404s that seemed like simple fixes: The Result docs use old_io Writer as an example. Fix the link to old_io Writer. There's probably an effort to update the example away from a deprecated api but this was a simple fix. rustc/plugin was pointing at the old guide and it was a broken link anyways (plugin vs plugins). Point at the book instead. The main page of the API docs referenced c_{str,vec}. Looks like these were deleted in 25d5a3a19423fee01787de87a56d185dd4e0a4e7. Point at ffi docs instead.
58 lines
1.6 KiB
Rust
58 lines
1.6 KiB
Rust
// Copyright 2012-2013 The Rust Project Developers. See the COPYRIGHT
|
|
// file at the top-level directory of this distribution and at
|
|
// http://rust-lang.org/COPYRIGHT.
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
|
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
|
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
|
// option. This file may not be copied, modified, or distributed
|
|
// except according to those terms.
|
|
|
|
//! 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:
|
|
//!
|
|
//! ```rust,ignore
|
|
//! #![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:
|
|
//!
|
|
//! ```rust
|
|
//! #![feature(plugin)]
|
|
//! #![plugin(myplugin)]
|
|
//! ```
|
|
//!
|
|
//! See the [Plugins Chapter](../../book/plugins.html) of the book
|
|
//! for more examples.
|
|
|
|
pub use self::registry::Registry;
|
|
|
|
pub mod registry;
|
|
pub mod load;
|
|
pub mod build;
|