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::*;