gmod-rs/README.md

49 lines
944 B
Markdown

[![crates.io](https://img.shields.io/crates/v/gmod.svg)](https://crates.io/crates/gmod)
[![docs.rs](https://docs.rs/gmod/badge.svg)](https://docs.rs/gmod)
# ⚙ gmod-rs
A swiss army knife for creating binary modules for Garry's Mod in Rust.
# Example
### rust-toolchain.toml
Because we're using the [`C-unwind`](https://rust-lang.github.io/rfcs/2797-project-ffi-unwind.html) ABI, this crate must be used on a [Nightly Rust](https://doc.rust-lang.org/book/appendix-07-nightly-rust.html) compiler.
```toml
[toolchain]
channel = "nightly"
```
### Cargo.toml
```toml
[lib]
crate-type = ["cdylib"]
[dependencies]
gmod = "*"
```
### lib.rs
```rust
#![feature(c_unwind)]
#[macro_use]
extern crate gmod;
#[gmod13_open]
fn gmod13_open(lua: gmod::lua::State) -> i32 {
println!("Hello from binary module!");
0
}
#[gmod13_close]
fn gmod13_close(lua: gmod::lua::State) -> i32 {
println!("Goodbye from binary module!");
0
}
```