[][src]Struct deno_core::Isolate

pub struct Isolate {
    pub v8_isolate: Option<OwnedIsolate>,
    pub global_context: Global<Context>,
    pub op_registry: Rc<OpRegistry>,
    // some fields omitted
}

A single execution context of JavaScript. Corresponds roughly to the "Web Worker" concept in the DOM. An Isolate is a Future that can be used with Tokio. The Isolate future complete when there is an error or when all pending ops have completed.

Ops are created in JavaScript by calling Deno.core.dispatch(), and in Rust by implementing dispatcher function that takes control buffer and optional zero copy buffer as arguments. An async Op corresponds exactly to a Promise in JavaScript.

Fields

v8_isolate: Option<OwnedIsolate>global_context: Global<Context>op_registry: Rc<OpRegistry>

Methods

impl Isolate[src]

pub fn new(startup_data: StartupData, will_snapshot: bool) -> Box<Self>[src]

startup_data defines the snapshot or script used at startup to initialize the isolate.

pub fn setup_isolate(isolate: OwnedIsolate) -> OwnedIsolate[src]

pub fn register_op<F>(&self, name: &str, op: F) -> OpId where
    F: Fn(&[u8], Option<ZeroCopyBuf>) -> CoreOp + 'static, 
[src]

Defines the how Deno.core.dispatch() acts. Called whenever Deno.core.dispatch() is called in JavaScript. zero_copy_buf corresponds to the second argument of Deno.core.dispatch().

Requires runtime to explicitly ask for op ids before using any of the ops.

pub fn set_js_error_create_fn(
    &mut self,
    f: impl Fn(JSError) -> ErrBox + 'static
)
[src]

Allows a callback to be set whenever a V8 exception is made. This allows the caller to wrap the JSError into an error. By default this callback is set to JSError::create.

pub fn dispatch_op<'s>(
    &mut self,
    scope: &mut impl ToLocal<'s>,
    op_id: OpId,
    control_buf: &[u8],
    zero_copy_buf: Option<ZeroCopyBuf>
) -> Option<(OpId, Box<[u8]>)>
[src]

pub fn execute(
    &mut self,
    js_filename: &str,
    js_source: &str
) -> Result<(), ErrBox>
[src]

Executes traditional JavaScript code (traditional = not ES modules)

ErrBox can be downcast to a type that exposes additional information about the V8 exception. By default this type is JSError, however it may be a different type if Isolate::set_js_error_create_fn() has been used.

pub fn snapshot(&mut self) -> OwnedStartupData[src]

Takes a snapshot. The isolate should have been created with will_snapshot set to true.

ErrBox can be downcast to a type that exposes additional information about the V8 exception. By default this type is JSError, however it may be a different type if Isolate::set_js_error_create_fn() has been used.

Trait Implementations

impl Drop for Isolate[src]

impl Future for Isolate[src]

type Output = Result<(), ErrBox>

The type of value produced on completion.

Auto Trait Implementations

impl !RefUnwindSafe for Isolate

impl !Send for Isolate

impl !Sync for Isolate

impl Unpin for Isolate

impl !UnwindSafe for Isolate

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Downcast for T where
    T: Any
[src]

impl<T> From<T> for T[src]

impl<T> FutureExt for T where
    T: Future + ?Sized
[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<F, T, E> TryFuture for F where
    F: Future<Output = Result<T, E>> + ?Sized
[src]

type Ok = T

The type of successful values yielded by this future

type Error = E

The type of failures yielded by this future

impl<Fut> TryFutureExt for Fut where
    Fut: TryFuture + ?Sized
[src]

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.