1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
//! # actix-lua: Lua scripting for actix
//!
//! The `actix-lua` crate provides a safe [Lua programming language] scripting enviroment for [actix], an actor framework.
//!
//! # The `LuaActor` object
//!
//! The main type exported by this library is the [`LuaActor`] struct.
//!
//! You should create [`LuaActor`] with [`LuaActorBuilder`].
//!
//! ```
//! extern crate actix_lua;
//! extern crate actix;
//!
//! use actix_lua::{LuaActorBuilder};
//! use actix::Actor;
//!
//! let addr = LuaActorBuilder::new()
//! .on_handle_with_lua(r#"return ctx.msg + 42"#)
//! .build()
//! .unwrap()
//! .start();
//! ```
//!
//! # The `LuaMessage` type
//!
//! [`LuaActor`] can only send/receive messages with type [`LuaMessage`].
//! It can be converted from/to primitive types such as `i64`, `String`, and `HashMap` with `LuaMessage::from`.
//!
//! [actix]: https://github.com/actix/actix
//! [Lua programming language]: https://www.lua.org
//! [`LuaActor`]: struct.LuaActor.html
//! [`LuaActorBuilder`]: struct.LuaActorBuilder.html
//! [`LuaMessage`]: enum.LuaMessage.html
extern crate actix;
extern crate regex;
extern crate rlua;
extern crate tokio;
extern crate uuid;
#[cfg(test)]
extern crate futures_timer;
mod actor;
mod builder;
mod message;
pub use actor::LuaActor;
pub use builder::LuaActorBuilder;
pub use message::LuaMessage;
pub mod dev {
/// Re-export `rlua` interface for library developers
pub mod rlua {
pub use rlua::*;
}
}