rquickjs_core/context.rs
1//! JS Contexts related types.
2
3mod base;
4mod builder;
5mod ctx;
6mod r#ref;
7
8#[cfg(feature = "futures")]
9mod r#async;
10#[cfg(feature = "multi-ctx")]
11mod multi_with_impl;
12
13/// A trait for using multiple contexts at the same time.
14#[cfg(feature = "multi-ctx")]
15pub trait MultiWith<'js> {
16 type Arg;
17
18 /// Use multiple contexts together.
19 ///
20 /// # Panic
21 /// This function will panic if any of the contexts are of separate runtimes.
22 fn with<R, F: FnOnce(Self::Arg) -> R>(self, f: F) -> R;
23}
24
25pub use base::Context;
26pub use builder::{intrinsic, ContextBuilder, Intrinsic};
27pub use ctx::{Ctx, EvalOptions};
28
29#[cfg(feature = "futures")]
30pub use r#async::AsyncContext;