# X-Plane plugin macro for Rust ## Purpose This library provides a macro for easy creation of plugins for X-Plane. With this library and the [xplm](https://crates.io/crates/xplm) crate, X-Plane plugins can be easily developed in Rust. ## Use To import the macro, the crate must be imported like this: ``` #[macro_use] extern crate xplane_plugin; ``` Creating a plugin involves three steps: 1. Create a struct for your plugin 2. Implement `Plugin` for your plugin struct 3. Place `xplane_plugin!(YourPluginStruct)` in a file, not in any function ## Examples ``` #[macro_use] extern crate xplane_plugin; use xplane_plugin::*; struct TestPlugin; impl Plugin for TestPlugin { fn start() -> Option { Some(TestPlugin) } fn enable(&mut self) { } fn disable(&mut self) { } fn stop(&mut self) { } fn info<'a, 'b, 'c>(&self) -> PluginInfo<'a, 'b, 'c> { PluginInfo { name: "Test Plugin", signature: "org.samcrow.rustplugin.test", description: "A plugin written in Rust", } } } xplane_plugin!(TestPlugin); ``` ## License Licensed under either of * Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0) * MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT) at your option. ### Contribution Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you shall be dual licensed as above, without any additional terms or conditions.