quickjs_rusty/lib.rs
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
//! quickjspp is a a Rust wrapper for [QuickJS / Quickjspp](https://github.com/c-smile/quickjspp), a new Javascript
//! engine by Fabrice Bellard.
//!
//! It enables easy and straight-forward execution of modern Javascript from Rust.
//!
//! ## Quickstart:
//!
//! ```rust
//! use quickjs_rusty::Context;
//!
//! let context = Context::builder().build().unwrap();
//!
//! // Eval.
//!
//! let value = context.eval("1 + 2", false).unwrap();
//! assert_eq!(value.to_int(), Ok(3));
//!
//! let value = context.eval_as::<String>(" var x = 100 + 250; x.toString() ").unwrap();
//! assert_eq!(&value, "350");
//!
//! // Callbacks.
//!
//! context.add_callback("myCallback", |a: i32, b: i32| a + b).unwrap();
//!
//! context.eval(r#"
//! // x will equal 30
//! var x = myCallback(10, 20);
//! "#, false).unwrap();
//! ```
// #![deny(missing_docs)]
mod callback;
pub mod compile;
pub mod console;
pub mod context;
pub mod errors;
pub mod module_loader;
#[cfg(feature = "serde")]
pub mod serde;
pub mod utils;
pub mod value;
pub use libquickjs_ng_sys::{JSContext, JSValue as RawJSValue};
pub use self::callback::{Arguments, Callback};
pub use self::context::*;
pub use self::errors::*;
pub use self::value::*;